1

memcache バックエンドがあり、memcache のキーのメタデータを追加するために redis を追加したいと考えています。メタ データは次のとおりです。 Miss_count: データが memcache に存在しなかった回数。Hash_value: memcache 内のキーに対応するデータのハッシュ値。

Data in memcache : key1 ::: Data
Meta data (miss count) : key1_miss ::: 10
Meta data (hash value) : key1_hash ::: hash(Data)

メタデータをmemcache自体に保存すると、メタデータのサイズが小さく、スラブ割り当てが小さなメモリを割り当てているため、メタデータは有効期限が切れる前に削除されるため、どのデータストアが望ましいかについてヘルプを提供してくださいそれにチャックします。

4

2 に答える 2

1

メタデータが時間とともに増加するにつれて、redis のハッシュの概念は失敗します。したがって、クライアント ロジックを適用して、max_zipped が満たされていることを確認します。

于 2012-08-13T16:14:59.690 に答える
0

あなたのユースケースを正しく理解していれば、Redis が良い選択かもしれません。さまざまなハッシュに関連付けられたメタ データのミス カウントを定期的に更新すると仮定すると、おそらく Redis の並べ替えられたセットを使用したいと思うでしょう。たとえば、「misscounts」と呼ばれる並べ替えられたセットに保存されたミス カウントが必要な場合、これらのカウントを追加/更新する Redis コマンドはまったく同じになります。

zadd ミスカウント ミスカウント key1

... zadd は、エントリがまだ存在しない場合はエントリを追加するか、存在する場合は既存のエントリを上書きするためです。ミスが発生するたびに起動するプロセスへのフックがある場合は、代わりに次を使用できます。

zincrby ミスカウント 1 キー 1

zadd コマンドの動作と同様に、zincrement は新しいエントリが存在しない場合は (インクリメント値をカウントとして使用して) 作成し、エントリが存在する場合は渡されたインクリメント値によって既存のカウントをインクリメントします。

Redis コマンドの完全なドキュメントは、ここにあります。Redis のさまざまなタイプのストレージ オプションの説明については、こちらで詳しく説明しています。

あ、あと最後に一言。私の経験では、Redis はクソです。(大文字で) 呪って申し訳ありませんが、Redis の正義を実行する方法は他にありません。Redis サーバーを「honey Badger」と呼んでいます。これは、負荷が増加し始め、他のサーバーが自動スケーリングを開始しても、honey Badger が気にしないためです。

于 2012-06-01T16:12:09.550 に答える