REDIS AOFファイル解析
一、Redisはメモリデータベースであるため、永続化が必要であり、redisはRDBとAOFの2つの永続化スキームを提供する.
RDBはRedis DataBaseであり、ファイルにはデータAOFであるAppend Only Fileが保存され、ファイルには書き込み操作コマンドが保存されている
RDBについては既に紹介しており、興味のある方は【RDBファイル解析】をお読みください.
二、配置本文は主にAOFファイルの内容を述べる.AOFモードのデフォルトはredisでオフです.confで、APPEND ONLY MODEの内容を見つけます
三、Windowsの下でaof持続化を開く(redis.windows.confを直接修正するのはアクセスを拒否する)
save/bgsave操作を実行するとappendonlyが表示されます.aofファイル、内容は以下の通りです.
*Nはコマンドのパラメータ個数であり、コマンド自体もパラメータ$Mはパラメータの長さである、すなわちバイト数は以上のコード説明を参照
四、総説 RedisはデフォルトでRDBをオンにし、指定された時間間隔で指定された回数の書き込み操作を実行すると、メモリ内のデータがディスクに書き込まれます. RDB永続化は大規模なデータ復旧に適しているが、データ整合性と整合性は劣っている. Redisは、AOFを手動でオンにすることができます.デフォルトでは、書き込み操作ログは1秒あたりAOFファイルに追加されます. AOFのデータ整合性はRDBより高いが、ファイルはますます大きくなり、データ回復効率に影響し、AOFファイルの大きな問題に対して、AOF書き換えメカニズム(複数のコマンドが同じデータを操作することを1つのコマンドに統合する)を提供する. Redisをキャッシュとして使用すると、永続化をオフにできます. Redisの永続化を使用する場合は、RDBとAOFの両方がオンになることを推奨します. RDB、AOFが同時に存在する場合、AOFファイル を優先的に使用する.
RDBはRedis DataBaseであり、ファイルにはデータAOFであるAppend Only Fileが保存され、ファイルには書き込み操作コマンドが保存されている
RDBについては既に紹介しており、興味のある方は【RDBファイル解析】をお読みください.
二、配置本文は主にAOFファイルの内容を述べる.AOFモードのデフォルトはredisでオフです.confで、APPEND ONLY MODEの内容を見つけます
# AOF and RDB persistence can be enabled at the same time without problems.
# If the AOF is enabled on startup Redis will load the AOF, that is the file
# with the better durability guarantees.
#
# Please check http://redis.io/topics/persistence for more information.
appendonly no #aof
# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof" #aof
......
# If unsure, use "everysec".
# appendfsync always # ,
appendfsync everysec # ,
# appendfsync no #
......
# AOF , aof
# Specify a percentage of zero in order to disable the automatic AOF
# rewrite feature.
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
三、Windowsの下でaof持続化を開く(redis.windows.confを直接修正するのはアクセスを拒否する)
C:\Users\Administrator>redis-cli config set appendonly yes
OK
C:\Users\Administrator>redis-cli config get appendonly
1) "appendonly"
2) "yes"
save/bgsave操作を実行するとappendonlyが表示されます.aofファイル、内容は以下の通りです.
*2 #
$6 # 6 , SELECT
SELECT #
$1 # , 1, 0
0 #
*3
$3
SET
$4
name
$4
jack
*2
$6
SELECT
$1
0
*3
$3
set
$3
sex
$4
male
*Nはコマンドのパラメータ個数であり、コマンド自体もパラメータ$Mはパラメータの長さである、すなわちバイト数は以上のコード説明を参照
四、総説