可能性のある複製:
PHPでMemcacheとMemcachedを使用
誰かがPHP環境でMemcacheとMemcachedの違いを説明できますか?一方が他方より優れている点は何ですか?また、どちらかを選択するために使用される基準を提案できますか?
(一部 ServerFaultから盗まれた )
どちらも機能的には同じであると思いますが、作成者が異なるだけで、一方は他方よりも適切な名前が付けられています。
これは、質問の質問者によるフラストレーションを説明する、命名規則(なじみのない人向け)の簡単な背景です。ただし、インターフェースまたはクライアントアプリケーションは、デーモンの制御またはアクセスに使用します。ほとんどの場合、デーモンにはクライアントと同じ名前が付けられ、「d」という文字が追加されます。たとえば、「imap」は「imapd」デーモンに接続するクライアントになります。
この命名規則は、memcacheモジュールの概要を読むときにmemcacheによって明確に遵守されています(この抜粋でmemcacheとmemcachedの違いに注意してください)。
Memcacheモジュールは、特に動的Webアプリケーションのデータベース負荷を減らすように設計された、非常に効果的なmemcachedキャッシングデーモンへの便利な手続き型およびオブジェクト指向のインターフェイスを提供します。
Memcacheモジュールは、セッションハンドラー(memcache)も提供します。
Memcachedの詳細については、" http://www.danga.com/memcached/ をご覧ください。
ここでのフラストレーションは、memcachedと呼ばれる実際のデーモンと同じ名前を共有するため、PHP拡張機能の作成者がmemcachedという名前を誤って付けたことが原因です。また、memcached(phpモジュール)の概要で、memcachedデーモンにアクセスするためにモジュールで使用される共有ライブラリ(またはAPI)であるlibmemcachedについて言及していることに注意してください。
memcachedは、高性能の分散メモリオブジェクトキャッシングシステムであり、本質的に汎用ですが、データベースの負荷を軽減することで動的なWebアプリケーションを高速化することを目的としています。
この拡張機能はlibmemcachedライブラリを使用して、memcachedサーバーと通信するためのAPIを提供します。また、セッションハンドラー(memcached)も提供します。
Libmemcachedに関する情報は" http://tangent.org/552/libmemcached.html にあります。
それらは同一ではありません。 Memcacheは古いですが、いくつかの制限があります。キャッシュにリテラルFALSE
を保存できないことに気付くまで、アプリケーションでうまく使用していました。キャッシュから返される値FALSE
は、キャッシュに値が見つからない場合に返されるFALSEと同じです。どちらがどれであるかを確認する方法はありません。 Memcachedには、(特に)Memcached::getResultCode
という追加のメソッドがあり、キーが見つかったかどうかを通知します。
この制限のため、キャッシュにFALSE
の代わりに空の配列を格納することに切り替えました。私はまだMemcacheを使用していますが、決定している人々のためにこの情報を公開したかっただけです。