2つのWebサーバーと中央のredisサーバーとSQLサーバーを備えたセットアップがあります。
SQL サーバーに対して行われるクエリのキャッシュとして redis を使用する必要があります。
そのため、Web サーバーは最初に redis キャッシュをチェックしてから、SQL サーバーに移動してその結果をキャッシュします。
ただし、2 つの Web サーバーは、もう一方が存在することを認識していないため、キャッシュされた「新しい」結果を置き換えることはできません。
このシナリオを回避したい:
タイムライン:
- WebServer1 : キーの redis をチェックしますが、結果が見つかりません。
- WebServer1 : SQL サーバーに Result1 を照会します。
- WebServer2 : 新しいデータを SQL サーバーに保存し、クエリ結果を変更します。
- WebServer2 : Redis キーを無効にします。
- WebServer2 : SQL サーバーに Result2 を照会します。
- WebServer2 : Result2 を Redis キーに入れます。
- WebServer1 : Result1 を Redis キーに入れます。
上記の問題は、最新の結果「Result2」が「Result1」によって上書きされることです。
Redisでこれを回避する方法はありますか?