5

キャッシュを EhCache から Memcachedに移行しています。Memcached インスタンスが 1 つしかない場合、(EhCache のように) 複数のキャッシュを持つ方法はありますか?

たとえば、「ユーザー」キャッシュ、「製品」キャッシュなどを作成したいと考えています。その主な理由は、各キャッシュを個別に監視および構成し、それらを個別にクリアできるようにすることです。

4

1 に答える 1

4

通常、この種の動作は memcached でネームスペースによって実現されます。1 つの memcached インスタンス内で、それぞれが異なるキャッシュを表す複数の名前空間を維持します。ただし、me​​mcached は名前空間をネイティブにサポートしていません。代わりに、memcached 名前空間は、キーに名前空間識別子 (例: memcachedClient.get('products.top10')) をプレフィックスとして付けることでエミュレートされます。Python GAE memcached clientなどの一部の memcached クライアントは、この動作を抽象化します。ただし、私が知る限り、xmemcached はそうではありません。

2 つのオプションが残っています。

  • 使用する各キーに手動でプレフィックスを付けます。
  • XMemcachedClient2 つの変更を加えた薄いラッパーを作成します。String namespaceプレフィックス値として機能するメンバーがあり、そのプレフィックスを適用するためにオーバーライドget0()します。これは、現在の XMemcached 実装に依存しているため、少し危険です。
于 2012-06-07T17:04:56.727 に答える