2017-12-06 4 views
1

Redisサーバーに障害が発生して再起動した場合、Redisにデータを再ロードする最良の方法は何ですか?以下のように(私はRedisの、インメモリ・データベースに少し新しいです)再起動時にRedis(または他のキャッシュサービス)のデータを再ロードする最も良い方法は?

私は三つの部分を持って、私はそれらを説明します:

  • プロデューサーのアプリは - SQLデータベースを更新し、またサブセットを書き込み
  • Redis server - SQLデータの重要なサブセットを持っています
  • コンシューマーアプリケーション - 高速でRedisでデータをルックアップする必要があります(現在はRedisまたはSQLに書き込みません)データベース)

一部のオプションは、私が検討している:

  • 入れリロードスクリプトをRedisのサーバーでは、SQLデータベースを照会し、消費者のアプリがに呼び出すことができるプロデューサーのアプリでエンドポイントを作成し、起動
  • 時に自身をリロードしますので、 ConsumerアプリがRedisサーバが空で再起動したことをコンシューマアプリに通知すると、Producerアプリにリロードするように指示します。
  • プロデューサアプリを完全に削除して、コンシューマアプリがSQLデータベースに直接問い合わせして結果をRedis SQLデータがいつ更新されたかはどのように分かりますか?)
  • プロデューサーアプリだけでなく、コンシューマアプリケーションで直接SQLデータベースにクエリを実行し、コンシューマアプリケーションがRedisが空であると判断した場合に結果を書き込みます。
+0

Redisの永続性の使用を検討しましたか?基本的には、データはディスクに保存され、再起動時の復旧に役立ちます。 –

答えて

0

Redisまたはその他のキャッシュにデータをリロードすることをキャッシュウォーミングといいます。あなたが持っているように見える問題は、Redisをキャッシュとして使用するのではなく、アプリケーション間で通信する手段であるということです。

は、通常は、アプリケーションは、データがそこにあるかどうおよびエンドポイントまたはデータベースを照会ない場合は、常にRedisのなしで行くための手段のいくつかの種類を持っている必要がありますので、見にRedisのを照会したいと思います。あなたがプロデューサー消費者のキャッシュを消去するか、消費者の心を持って、それは自身のキャッシュだと古いデータを扱うか、単にデータを提供するため、別のアプリケーションをご紹介があなたの正確なニーズによって異なります持っているかどうか

関連する問題