デフォルトのファイルベースでのセッション管理と比べて 複数のWEBサーバ間でセッション共有してくれたり、今更感はあるけど 幸せになれそうなのでやってみます。 ちなみにNginx+FastCGI環境です。 導入 インストール PHPがインストールされている前提です。 PHPのモジュールにはmemcachedを使用します。memcache(激似)というものもありますが、有志の比較によると現状こちらの方が早いとの事なので。絶賛開発合戦中なので将来的にはわかりませんが。
![PHPセッションをmemcachedで管理する件 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f3d4ac99342517a667fa795f3b1346f932584473/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UEhQJUUzJTgyJUJCJUUzJTgzJTgzJUUzJTgyJUI3JUUzJTgzJUE3JUUzJTgzJUIzJUUzJTgyJTkybWVtY2FjaGVkJUUzJTgxJUE3JUU3JUFFJUExJUU3JTkwJTg2JUUzJTgxJTk5JUUzJTgyJThCJUU0JUJCJUI2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lMDFjMTUxYWRkMDM4YjM3OGNlYmNkOGUwNTYwNDc1YQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc3VwZXJ0YWloZWkwMiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NWNhZGQ1NjA5N2EzMWQ2ZWU5MTQ2YjM0MGQyOTVlMmE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Df43d793198b95c4d853531e2bf614ede)
Tuesday, December 31, 2013 大晦日にラブライブ スクフェス イベント終了間際の壮絶なる叩き合い、しびれる~ とかいいつつ、俺はきっと敗れたと思う 結果はあと3分後 ダメですた tags ラブライブ スクフェス php sessionのバックエンドにmemcachedを利用する これはバイナリモジュールが必要なのであるが、php(というかpecl)にはphp-memcacheとphp-memcachedという二つのものが存在する。 http://php.net/manual/ja/book.memcache.php http://php.net/manual/ja/book.memcached.php どーやらphp-memcachedの方がよさそう、らしい。マニュアルにもセッションのバックエンドに関する記事はmemcachedモジュールの方にしか用意されていな
前回の記事でPHPでmemcacheが使えるようになりましたので、今回はPHPでセッション($_SESSION)をmemcacheに格納する設定を行います。 現状の設定確認 $ php -i | grep session.save session.save_handler => files => files session.save_path => no value => no value デフォルトの設定ではセッションはファイル(files)に保存されます。 セッションファイルの保存先はphp.iniのsession.save_pathで設定されており、デフォルトは/tmpです。 セッションの保存先をファイルからmemcacheに変更します。 php.iniの編集 ; php.iniの場所は環境によって異なるので適宜変更 ; /usr/local/php/lib/php.ini [Ses
前回の記事で、repcached(memcached)をインストールしました。 memcachedをインストールすることで、セッションなどの一時的なデータを格納することができます。今回はPHPでmemcachedを使うために、memcacheモジュールをインストールしてみます。 memcacheモジュールが入っているかを確認 phpコマンドで入っているモジュールを確認します。 $ php -m | grep memcache memcacheが表示されていれば、memcacheモジュールがすでにインストールされているのでここから先の作業は必要ありません。 memcacheモジュールのインストール yumでmemcachedのインストール 前回のようにすでにmemcachedがインストールされていれば、yumでインストールする必要はありません。 $ sudo yum install memc
複数台の構成の場合、WEBサーバ、データベースサーバ、キャッシュサーバと、役割別にサーバを建てることが一般的です。 役割を簡単に説明すると、下記の通りになります。 WEBサーバ(Apache, nginxなど) ブラウザからアクセスしたときにページ表示させます データベースサーバ(MySQLなど) データベース キャッシュサーバ(memcachedなど) セッションやデータを格納するのに使います キャッシュサーバにセッションを格納し、複数WEBサーバから参照できることによってユーザのセッションを維持することができます しかし、サーバ購入や運用のコスト面などの理由により、1台のサーバに複数の役割を持たせることもあります。例えば、下記の図のように1台(サーバA)にWEBサーバとデータベースとCacheを同居させて、もう一台(サーバB)にはWEBサーバを建てて、DBとCacheを2台で共有して使
HTTPS(SSL利用)サイトがSEO的に優遇されるトレンドで、世間的にもHTTPS接続でサイト運用するサービスが増えてきています。 これが、ハイトラフィックサイトになってくると、このフロントエンドでSSL処理させることが負荷的にもなかなか辛いのです。 で、Apache 2.3以降では、Shared Object Cache Providerとして、memcachedが選択できるようになっています。 この仕組みを利用して、Apacheとmemcachedを並べることで、各サーバでユーザのSSL Session Cacheを共有しながらHTTPSリクエストを負荷分散できる構成を作ってみました。 WebサーバでSSLオフロード 常時SSLを利用したWebサイトを運用するために、SSLアクセラレータといったアプライアンス製品だとか、ソフトウェアだとApacheやNginxのSSLモジュールを使う
レーザー治療までしたのにくしゃみ出まくってるんですけど、いったい何なんですか。どうもこんにちは nakamura です。 PHP-5.3.x 系もだいぶ浸透してきた今日この頃ですが、今日はここ最近新規にウェブサーバを立てる際にいつもデフォルトでやっている PHP 周りの設定をまとめてみました(よくよく考えたら PHP-5.3.x 系とかあんまり関係ないけど)。環境は CentOS 5 or 6 の PHP-5.3.x です。remi リポジトリを使って最新版の PHP を入れてます。 /etc/php/php.ini 毎回さわっているのは大体この辺ですね。他はサイトの仕様にあわせて適宜。 [PHP] expose_php = Off [Date] date.timezone = Asia/Tokyo セッションの保存先を memcached に セッションの保存先はデフォルトで memca
クライアントからmemcachedを利用する際の、ベストプラクティスは以前書いているので、その前段階でmemcachedを含めたWebアプリケーションのアーキテクチャ(と一部クライアントの話)について今の個人的な考えをまとめてみます。Kyoto Tycoonを使ったキャッシュサーバでも基本は同じだと思います 1) 使わない memcachedをアプリケーションに組み込むことで、プログラムがどうしても複雑になりがちです。データの削除や更新の際にキャッシュの更新を忘れると多くの問題が発生します。例えばユーザがニックネームやプロフィール写真を更新したのに画面上変わらないなどの現象が起こると、ユーザに対して不快な思いをさせてしまうでしょう。またデータベースが非同期のレプリケーションを行っている場合、masterに対してデータの変更をかけ、更新が反映される前にslaveから読み込んでしまい、キャッシ
WEBサービス用に覚えておくと使える&使えそうなpeclモジュールまとめ。 先日「WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ」でまとめると書いてからちょっと日が空いてしまったのですが、まとめてみました。 殆ど使ったことがある物を載せましたが、peclをひと通り見て、使ったことはないけれど面白そうなものも入れてみました。 pecl はCやC++で書かれたPHP用のモジュールをまとめたリポジトリです。PEARはPHPで書かれていますが、peclの物はC/C++で書かれている為、高速に動作します。 基本的にpeclの方が速いので、PEARと同等の機能の物は置き換えたほうがよいです。(但し、ちょっと古いpeclライブラリ等は動作を検証するようご注意) 開発 APC Alternative PHP Cache。PHPのコードを中間コード化して毎回パースしないようにし
過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ。 サービス展開というとOSのチューニングや各種インフラソフトウェアのチューニング、更にはWEBアプリプログラム自体の効率化と、幅広い知識が必要になってきますが、PHPでWEBアプリを作る際によく効くキャッシュテクニックを用途・使いどころ別に説明します。 キャッシュをうまく効かせることで大幅に計算量を減らしてより多くのリクエストを少ないマシンで捌くことが出来、コストを下げたり、過負荷の悩みを減らせます。 個人レベルでのWEBサービス開発の場合、サーバ代がお財布を大きく圧迫しますが、最低のコストでサービスを賄うことに繋げられます、ということでPHPでサービス作ってやろうと思っている人は参考にしてみて下さい。 static変数でキャッシュ 特に何も入れなくてもそのまま使えるstatic変数。例えば、関数等で一定の計算
こんにちは mayutan です。 ラボブログを書かないとクビだと脅されたのでクリスマスに泣きながら書いておりますが 皆様いかがお過ごしでしょう。 今回のレディの嗜みですが、 レディたるもの、キーバリューストアくらい扱えないとなりません!!!!!!111 という事で membase についてご紹介しようと思います。 最近猫も杓子もソーシャルソーシャルわっしょいわっしょい!といった感じで、 これまでのシステムとはまた違った独特の工夫を皆様されていると思うのですが、 memcached を使っている方はかなり多いのではないでしょうか。 ここにプラットフォームから取得した情報や、あまり更新されない情報などを保存して、 DB やプラットフォームへのアクセスを極力減らす、という使い方がメジャーだと思います。 そして、同時に「これ永続化できたらもっと便利なんじゃないの?」って皆思ってるで
Keita です。 浴衣姿の女性は人類の宝だと思います。 さて、phpのpeclのmemcache'd'ってご存知でしょうか。 長い歴史をもつpecl memcache(名前近過ぎだ)はその拡張の中でmemcachedプロトコルの実装をしていますが、pecl memcachedはlibmemcahcedにその実装を依存を任せています。 利用するときの違いとしては memcache: インストール時に他のライブラリに依存しない 長いこと使われてるライブラリなので安定性はある memcached memcacheよりも利用できる機能が多い 今後もプロトコルの拡張があったときにlibmemcachedに追従するだけなので対応が早いことが予測される という点が挙げられます。(まだまだ一杯ありますが・・) memcacheよりも利用できる機能が多いというのはかなり大きく、具体的に言うと、set時に
handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] kazuho (Kazuho Oku) http://twitter.com/kazuho/status/21477219149 考えて答えてみる。 HandlerSocketやmycachedを利用し、MySQLへの接続数が数万単位で行えるようになったり、より多くのクエリ数が発行できるようになっても、memcachedは不要ではないし、使うべきケースもあります。 memcachedは単なるKVSではなく、ExpiresとLRUがついたキャッシュサーバです。キャッシュオブジェクトには期限を付ける事ができ、期限が過ぎたキャッシュは無効にされ、またアクセスがされていない不要になったオブジェクトは削除され、空いたスペースは新しいキャッシュオ
Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M
グーグルでMySQLエンジニアリングチームを率いたのち、現在はFacebookに在籍しているMark Callaghan氏がブログ「High Availability MySQL」にポストしたエントリが発端になって、MySQL+Memcachedの時代は過ぎたのか? という議論が巻き起こっています。 元グーグルMySQL担当エンジニアが弱気な発言? Callaghan氏がポストしたエントリ「Plays well with others」は次のような一文で始まり、MySQLについてややシニカルに書かれているように読めます。 A few years ago MySQL+memcached and PostgreSQL+memcached were the only choices for high-scale applications. That has changed with the ar
David, cache, musser, noboru, obata, profiler, perl, Day, 21, memory, Powerful, blog, eBook, BlogBook, Direct, The, Western, Path, Autobiography, Swami, Yogi, Disciple, Yogananda, J.Donald, Walters Your document has been indexed by the following search engines: Google Bot has been here 38 times. First crawled 4 months ago. Last crawled 3 days ago. Yahoo! Bot has been he
本稿の前提環境 memcached 1.2.5 データベース:PostgreSQL 8.3.1 OS:CentOS 5(Linux kernel 2.6 ) シェル:bash CPU:Intel Core2Quad 9660 2.4GHz RAM:PC2-6400 8GBytes memcachedは、Danga Interactiveによって開発されたオープンソースのメモリキャッシュサーバです。 メモリ上にデータを保存するのでmemcachedを終了するとデータが失われますが、(OracleやMySQLといった)RDBMSと比較するとけた違いの高速レスポンス性能を有し、数千万件という大量のデータを扱ってもほとんど性能が劣化しないという特徴があります。 機能は限界まで切り詰められ、基本的にはキーとデータの組(以下、itemと呼びます)の保存と検索と削除しかできません。 にもかかわらず、me
株式会社ミクシィ 研究開発グループの前坂です。前回の記事でmemcachedは分散に長けた高速なキャッシュサーバであることが紹介されました。今回はmemcachedの内部構造がどう実装されているのか、そしてメモリがどう管理されているのかをご紹介します。また、memcachedの内部構造の事情による弱点も紹介します。 メモリを整理して再利用するSlab Allocationメカニズム 昨今のmemcachedはデフォルトでSlab Allocatorというメカニズムを使ってメモリの確保・管理を行っています。このメカニズムが登場する以前のメモリ確保の戦略は、単純にすべてのレコードに対してmallocとfreeを行うといったものでした。しがしながら、このアプローチではメモリにフラグメンテーション(断片化)を発生させてしまい、OSのメモリマネージャに負荷をかけ、最悪の場合だとmemcachedのプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く