[解決済み】Memcachedの代わりにMemcacheを使用するのはどんな場合ですか?
質問
PHPには、2つのmemcachedライブラリがあるようです。 memcache と メムキャッシュ . 何が違うのか、また、どれを使えばいいのか、どのように判断すればいいのでしょうか?どちらかが古いのでしょうか?memcachedはより多くのメソッドを提供しているようなので、最も開発が進んでいるということでしょう。 外部 C/C++ ライブラリ ということで、インストールできるかどうかわかりません。
memcacheの方が歴史が長いようで、追加のライブラリを必要とせず、また プリコンパイルされたバイナリ をWindowsでも使えるようにしました。今のところ、そちらの方が良いのではと思います。しかし、memcached(サーバー)初心者なので、memcached(php)に何か超重要な機能があって、余計な手間をかける価値があるのかどうか、よくわからないのです。
解決方法は?
Memcachedクライアント ライブラリは、つい最近安定版としてリリースされました。このライブラリは ディグ (これは Andrei Zmievski によって digg のために開発されましたが、現在は digg にはいません) そして、さらに多くの memcachedプロトコル 古いmemcacheクライアントよりも。memcachedが持つ最も重要な機能は以下の通りです。
- キャストークン . これは私の生活をずっと楽にしてくれましたし、古いデータを簡単に防止するシステムでもあります。キャッシュから何かを取り出すときはいつでも、casトークン(2つの数字)を一緒に受け取ることができます。そのトークンを使って、更新したオブジェクトを保存することができます。もし、あなたのスレッドが実行されている間、誰もその値を更新していなければ、交換は成功します。そうでない場合は、より新しい cas トークンが作成され、データを再ロードし、新しいトークンで再度保存することを余儀なくされます。
- 読み上げ コールバック は、スライスされたパン以来の最高のものです。私のコードの多くを簡略化してくれました。
- getDelayed() は、スクリプトがサーバーから結果が戻ってくるのを待つ時間を短縮することができるすばらしい機能です。
- memcachedサーバーは非常に安定しているはずですが、最速というわけではありません。新しいクライアントでは、ASCII の代わりにバイナリプロトコルを使用することができます。
- 複雑なデータをmemcachedに保存する場合、以前はクライアントが常に値のシリアライズを行っていました (これは遅いです)。 イグバイナリ . 今のところ、これがどの程度パフォーマンスを向上させることができるのか試す機会がありません。
これらの点から、私は最新のクライアントに乗り換え、魅力的に動作することをお伝えします。への外部依存があります。 libmemcached しかし、それでもUbuntuとMac OSXにインストールできたので、今のところ問題はない。
もし、新しいライブラリにアップデートするのであれば、最新のサーバーバージョンにもアップデートすることをお勧めします。次のものをインストールする必要があります。 libevent が、Ubuntuでは、それほど問題なくコンパイルできました。
今のところ、どのフレームワークも新しい memcached クライアントをピックアップしているのを見たことがありません (追跡しているわけではないのですが)。 ゼンド が間もなく搭載されるでしょう。
アップデイト
Zend Framework 2 には、Memcached 用のアダプタがあり、以下の場所にあります。 こちら
関連
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] PHP memcached Fatal error: クラス 'Memcache' が見つかりませんでした
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] PHP の配列を保存するための好ましい方法 (json_encode vs serialize)
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] メムキャッシュ Memcached [重複] [重複] [重複] [重複