40

Redis メモリは memcached のように保存するだけですか、それともデータをディスクに書き込みますか? ディスクに書き込む場合、どのくらいの頻度でディスクに書き込まれますか?

4

2 に答える 2

36

Redis の永続性については、こちらで詳しく説明しています。

http://redis.io/topics/persistence

デフォルトでは、redis はスナップショットを実行します。

デフォルトでは、Redis はデータセットのスナップショットをディスク上の dump.rdb というバイナリ ファイルに保存します。データセットに少なくとも M 個の変更がある場合、N 秒ごとにデータセットを保存するように Redis を構成するか、SAVE または BGSAVE コマンドを手動で呼び出すことができます。たとえば、この構成では、少なくとも 1000 個のキーが変更された場合、Redis は 60 秒ごとにデータセットをディスクに自動的にダンプします: save 60 1000

別の良い参考文献は、著者のブログへのこのリンクです。彼は、redis の永続化がどのように機能するかを説明しようとしています。

http://antirez.com/post/redis-persistence-demystified.html

于 2012-06-14T21:51:02.600 に答える
23

Redis はすべてのデータをメモリに保持します。アプリケーションのデータのサイズが大きすぎる場合、Redis は適切なソリューションではありません。

ただし、Redis は、データを永続化する 2 つの方法も提供します。

1) 事前定義された間隔でのスナップショット。変更の数にも依存する場合があります。これらの間隔の間の変更は、電源障害またはクラッシュで失われます。

2) データが変更されるたびに一種の変更ログを書き込む。これがディスクに物理的に書き込まれる頻度を微調整できますが、常にすぐに書き込むことを選択した場合 (パフォーマンスがいくらか犠牲になります)、Redis のメモリ内の性質によるデータ損失はありません。

于 2012-06-17T09:55:18.193 に答える