1

memcacheを使用してWebアプリケーションのモデルレイヤーのキャッシュを設計しています。私の最大の問題の1つは、データの一貫性です。次のようなデータをキャッシュすることになりました:(key = query、value =クエリの結果のオブジェクトIDのリスト)リストの各ID:(key = object.id、value = object)

したがって、クエリが実行されるたびに、クエリがすでに存在する場合は、リストで通知されたオブジェクトをキャッシュから取得します。そうでない場合は、リストのすべてのオブジェクトがキャッシュに保存され、他の古い値が置き換えられます。

誰かがこの代替手段を使用しましたか、それは神ですか?他のアイデアはありますか?

4

2 に答える 2

1

キャッシングは、1 つの正解がないトピックの 1 つです。ドメインによって異なります。

あなたが説明したキャッシング ポリシーは、あなたのドメインには十分かもしれません。ただし、古いデータについて心配しているようには見えません。多くの場合、一部のエンティティに対してタイムスタンプが表示されることを期待します-キャッシュされた値がシステム定義のパラメーターよりも古い場合、古いと見なされ、再フェッチされます。

キャッシュ アルゴリズムの詳細については、ウィキペディア(初心者向け) を参照してください。

于 2008-09-18T14:26:20.623 に答える
0

Welcome to the world of concurrency programming. You'll want to learn a bit about mutual exclusion. If you tell us what language/platform you are developing for we can describe more specifically your options.

于 2008-09-18T14:23:56.947 に答える