1

30 秒間キャッシュされたものがあるとします。キャッシュされたものを生成する db リクエストには 2 秒かかり、1 秒あたり 100 リクエストを取得しています。キャッシュを更新する必要がある場合はどうなりますか?

データベースが 200 回ヒットしたと思われます。私がやりたいのは、最初のものを通過させてから、他の人にキャッシュに戻るように指示することです。したがって、基本的に30秒後にキャッシュの最初の試行はここでは何も言いませんが、残りは以前にそこにあったものを与えられるまで取得します通過させられたものはそれを更新します。

アプリケーション レベルでこれを行う必要がありますか? それとも、memcache を構成してこれを行うことができますか?

4

1 に答える 1

1

アプリケーション内でこのロジックを構築する必要があります。アイテムがmemcached内に見つからない場合は、データベースからアイテムを取得し、キャッシュ内に新しいアイテムを作成するだけです。アイテムの有効期限が切れたら、データベースからアイテムを再キャッシュする必要があります。

[ get item from cache ] ----- yes
   |                           |
  no                        [ return item ]
   |
   |
[ get item from database ] -- yes
   |                           |
  no                        [ store item in cache ]
   |                           |
[ return not found ]        [ return item ]
于 2012-09-11T13:43:57.693 に答える