6

最初に2 つの memcached ノード (ノード A、B ) があり、新しいノード Cを追加すると、キーの一部が再マップされ、一貫したハッシュのおかげでそれらの一部のみが再マップされるとします。

元々サーバー A にあったキー「 foo」を持つ値が、現在サーバー C にマップされていると仮定しましょう。

最終的にノード C を削除すると、キーはノード A に再度マップされるはずですが、その時点ではノード A には古いデータしか含まれていません。

では、データをフラッシュすることがこの問題を解決する唯一の方法ですか?

4

2 に答える 2

2

あなたの問題は、「キャッシュ内のデータが古い」に要約されます。それで、それを修正する方法は?

そのため、最新の値でキャッシュを更新する必要があり ます。これに代わるものはないと思います。システム要件に応じて、最適化するためのさまざまなアプローチを検討できます。

于 2012-12-26T09:26:01.543 に答える
2

古くなったデータを処理する必要があるのは...何もないことだけだと思います! 新しいサーバーを導入すると、キャッシュの一部が無効になることがわかっています。それで全部です!その瞬間が来たら、memcached に古いデータを取り除いてもらいましょう!

もう 1 つの問題は、古いオブジェクトを自分で取り除くことができないことです。これは、そのオブジェクトがどのサーバーに格納されているかわからないためです (一貫したハッシュ アルゴリズムのおかげです)。

あなたの質問に答えることを願っています。

于 2012-12-21T08:57:04.840 に答える