Redis メモリは memcached のように保存するだけですか、それともデータをディスクに書き込みますか? ディスクに書き込む場合、どのくらいの頻度でディスクに書き込まれますか?
2 に答える
Redis の永続性については、こちらで詳しく説明しています。
http://redis.io/topics/persistence
デフォルトでは、redis はスナップショットを実行します。
デフォルトでは、Redis はデータセットのスナップショットをディスク上の dump.rdb というバイナリ ファイルに保存します。データセットに少なくとも M 個の変更がある場合、N 秒ごとにデータセットを保存するように Redis を構成するか、SAVE または BGSAVE コマンドを手動で呼び出すことができます。たとえば、この構成では、少なくとも 1000 個のキーが変更された場合、Redis は 60 秒ごとにデータセットをディスクに自動的にダンプします: save 60 1000
別の良い参考文献は、著者のブログへのこのリンクです。彼は、redis の永続化がどのように機能するかを説明しようとしています。
Redis はすべてのデータをメモリに保持します。アプリケーションのデータのサイズが大きすぎる場合、Redis は適切なソリューションではありません。
ただし、Redis は、データを永続化する 2 つの方法も提供します。
1) 事前定義された間隔でのスナップショット。変更の数にも依存する場合があります。これらの間隔の間の変更は、電源障害またはクラッシュで失われます。
2) データが変更されるたびに一種の変更ログを書き込む。これがディスクに物理的に書き込まれる頻度を微調整できますが、常にすぐに書き込むことを選択した場合 (パフォーマンスがいくらか犠牲になります)、Redis のメモリ内の性質によるデータ損失はありません。