我正在试验Redis并深入研究持久性机制。
如果我打开追加(追加是)和关闭RDB(保存")在redis. conf文件。
然后我启动一个新数据库
并设置两个键:
SETfirstKey我是第一个
SET第二个Key我是第二个
我最终得到一个没有任何标题的附录文件,只有命令:
raphaeldelio@Raphaels-MacBook-Pro data % cat appendonly.aof
*2
$6
SELECT
$1
0
*3
$3
SET
$8
firstKey
$14
I'm number one
*3
$3
SET
$9
secondKey
$14
I'm number two
然后,如果用以下方式覆盖第一个键:
SETfirstKey我仍然是第一名
然后运行BGREWRITEAOF
,文件被重写并添加一个类似于dump. rdb文件头的头:
raphaeldelio@Raphaels-MacBook-Pro data % cat appendonly.aof
REDIS0009? redis-ver6.2.7?
redis-bits?@?ctimežk?bused-mem˜??
aof-preamble???????֭h
????mʗ????~??ױ??firstKeyI'm still number one secondKeyI'm number two??????֭h
????mʗ??????!4d?%
但是,我希望该文件再次被重写为命令日志。
因此,我有两个问题:
您指的是一个前序RDB的AOF文件。另请参见此处。
我做了以下实验:
appendly. aof
重命名为dump.rdb
redis. conf
,关闭appendonly
并再次打开保存
服务器能够使用只有标头的dump. rdb
来重新创建数据库。
这让我相信: