Redis Persistenceを構成するには、RDB(Redisデータベース)スナップショットとAOF(ファイルのみを追加)の両方を考慮する必要があります。それぞれを構成する方法は次のとおりです。
RDBスナップショット:
RDBを有効にする:デフォルトでは、RDBが有効になっています。 redis.conf
ファイルで構成できます。 save
から始まる行を探して、スナップショットの頻度を設定します。
<code>save 900 1 save 300 10 save 60 10000</code>
これらの行は、次の条件のいずれかが満たされている場合、Redisがデータセットをディスクに保存することを意味します。
ファイル名と場所: redis.conf
でファイル名とパスを設定することもできます。
<code>dbfilename dump.rdb dir /var/lib/redis</code>
圧縮: RDBファイルを圧縮してディスクスペースを節約できます。構成でこれを有効または無効にします:
<code>rdbcompression yes</code>
AOF(ファイルのみを追加):
AOFを有効にする: aofはデフォルトで無効になっています。それを有効にするには、 redis.conf
でappendonly
yes
に設定します:
<code>appendonly yes</code>
ファイル名と場所: RDBと同様に、ファイル名とパスを設定できます。
<code>appendfilename "appendonly.aof" dir /var/lib/redis</code>
aof rewrite: redisがaof rewriteを実行するときに制御するには、 auto-aof-rewrite-percentage
とauto-aof-rewrite-min-size
使用します。
<code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
これらの設定は、現在のAOFファイルが最後の書き換えよりも100%大きく、少なくとも64MBのサイズである場合、AOF書き換えがトリガーされることを意味します。
fsyncポリシー: appendfsync
設定は、redisがディスクにデータを書き込む頻度を制御します。
<code>appendfsync everysec</code>
オプションには、 always
、 everysec
、およびno
含まれます。 everysec
、パフォーマンスとデータの安全性のバランスをとる一般的な選択肢です。
RDBとRedisの持続性のためにAOFを選択することは、いくつかの方法でパフォーマンスに影響します。
RDB:
AOF:
パフォーマンスへの影響: AOFは、すべての書き込み操作を記録するため、より頻繁なI/Oにつながるため、よりリソース集約的になります。ただし、パフォーマンスのヒットは、 fsync
ポリシーで軽減できます。
always
:すべてのコマンドのディスクに同期し、高い耐久性を提供しますが、パフォーマンスに大きな影響を与えます。everysec
:毎秒ディスクに書き込み、パフォーマンスとデータの安全性のバランスをとることができます。no
:オペレーティングシステムに依存してデータをディスクに書き込むことはありません。REDISのRDBスナップショットの頻度とサイズを最適化するには、次の戦略を検討してください。
頻度の最適化:
保存間隔を調整します: redis.conf
のsave
間隔を変更して、データの安全性とパフォーマンスのバランスを取ります。たとえば、データセットが頻繁に変更されない場合、頻度を減らすことができます。
<code>save 3600 1 save 300 100 save 60 10000</code>
INFO
コマンドを使用して、 rdb_last_save_time
およびrdb_changes_since_last_save
メトリックを監視します。ワークロードに基づいて保存間隔を調整します。サイズの最適化:
圧縮: RDB圧縮を有効にして、スナップショットのサイズを縮小します。
<code>rdbcompression yes</code>
LIST
の代わりにSET
を使用すると、スナップショットが小さくなることがあります。追加のヒント:
RedisでAOFを使用するときにデータの整合性を確保するには、次の手順に従ってください。
1。適切なfsync
ポリシーを選択します。
パフォーマンスとデータの安全性のバランスを得るために、 redis.conf
のeverysec
にappendfsync
設定します。
<code>appendfsync everysec</code>
appendfsync always
検討しますが、パフォーマンスへの影響に注意してください。2。通常のAOF書き換え:
自動AOF書き換えを有効にして、ファイルサイズを管理可能に保ち、データの整合性を向上させます。
<code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
BGREWRITEAOF
コマンドを使用してAOFの書き換えを手動でトリガーすることもできます。3。AOF腐敗チェック:
redis-check-aof
ツールを使用して、AOFファイルの整合性を確認します。破損が検出された場合、ファイルを修復できます。
<code>redis-check-aof --fix appendonly.aof</code>
4。冗長性のための複製:
Redisレプリケーションを設定して、データの複数のコピーを作成します。これにより、1つのサーバーが失敗した場合でもデータの整合性が保証されます。
<code>slaveof <masterip> <masterport></masterport></masterip></code>
5。監視とアラート:
6。バックアップ戦略:
これらの手順に従うことにより、AOFを永続化に使用する場合、Redisセットアップのデータ整合性を大幅に強化できます。
以上がRedis Persistence(RDB Snapshots、AOF)を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。