「耐久性のある」とは、サーバーがいつでもクラッシュする可能性があることを意味し、ディスクが無傷である限り、データが失われることはありません(ACIDを参照)。それがジャーナリングモードの目的のようですが、ジャーナリングを有効にすると、メモリ内データを操作する目的が損なわれませんか?読み取り操作はジャーナリングの影響を受けない可能性がありますが、ジャーナリングによって書き込みパフォーマンスが低下するようです。
11293 次
1 に答える
64
Redisは通常、ジャーナリングを使用している場合でも、「耐久性のある」データストア(ACIDの「D」の意味で)としてデプロイされません。ほとんどのユースケースは、速度と引き換えに意図的に少しの耐久性を犠牲にします。
ただし、「ファイルのみを追加」ストレージモードは、パフォーマンスを犠牲にして、永続的な方法で動作するようにオプションで構成できます。変更のたびにfsync()の料金を支払う必要があります。これを構成するには、.confファイルで次の2つのオプションを設定します。
appendonly yes
appendfsync always
ドキュメントから:追加専用ファイルの耐久性はどれくらいですか?
redis.confを確認してください。Redisがディスク上のデータをfsync()する回数を設定できます。3つのオプションがあります。
- 新しいコマンドが追加ログファイルに追加されるたびにFsync()。非常に遅く、非常に安全です。
- Fsync()は毎秒1回です。十分な速さで、災害が発生した場合に1秒のデータを失う可能性があります。
- fsync()は使用せず、データをオペレーティングシステムの手に渡してください。より速く、より安全でない方法。
(Redis post-2.0.0に同梱されている構成ファイルのappendfsyncのデフォルトはeverysec
、であり、ではないことに注意してくださいalways
。)
于 2010-03-25T02:08:05.510 に答える