キャッシュを EhCache から Memcachedに移行しています。Memcached インスタンスが 1 つしかない場合、(EhCache のように) 複数のキャッシュを持つ方法はありますか?
たとえば、「ユーザー」キャッシュ、「製品」キャッシュなどを作成したいと考えています。その主な理由は、各キャッシュを個別に監視および構成し、それらを個別にクリアできるようにすることです。
通常、この種の動作は memcached でネームスペースによって実現されます。1 つの memcached インスタンス内で、それぞれが異なるキャッシュを表す複数の名前空間を維持します。ただし、memcached は名前空間をネイティブにサポートしていません。代わりに、memcached 名前空間は、キーに名前空間識別子 (例: memcachedClient.get('products.top10')
) をプレフィックスとして付けることでエミュレートされます。Python GAE memcached clientなどの一部の memcached クライアントは、この動作を抽象化します。ただし、私が知る限り、xmemcached はそうではありません。
2 つのオプションが残っています。
XMemcachedClient
2 つの変更を加えた薄いラッパーを作成します。String namespace
プレフィックス値として機能するメンバーがあり、そのプレフィックスを適用するためにオーバーライドget0()
します。これは、現在の XMemcached 実装に依存しているため、少し危険です。