RDB-AOF实操
🐯温馨提示🐯:本文中有关于Redis配置文件路径等需按自己个人服务器实际路径为准 !!!
-
查看后台是否运行了Redis服务
ps -ef | grep redis
-
停止所有Redis服务
service redis_6379 stop -
保证后台没有任何Redis服务在运行
ps -ef | grep redis
-
为了方便观看日志,我们需要将Redis设置为前台服务形式,需要将daemonize配置关掉,将日志文件配置关掉,让日志显示在前台
vi /etc/redis/6379.conf-
找到
GENERAL模块,将daemonize yes改为daemonize no -
将
logfile /var/log/redis_6379.log配置注释掉#logfile /var/log/redis_6379.log
-
暂时关闭RDB+AOF混合(v4.0后新特性),将
aof-use-rdb-preamble yes修改为aof-use-rdb-preamble no

-
清除一下相关文件
cd /var/lib/redis/6379/ ls
-
删除dump.rdb文件包括其他文件(如果有的话)
rm -rf ./* -
经过一番设置清理,还原了一个干净的服务
-
-
再开一个窗口来启动Redis
redis-server /etc/redis/6379.conf -
回到刚刚的窗口中,我们刚清完的那个文件夹中,查看文件列表
ls -ll -
我们发现没有再生成dump.rdb文件了

-
而此时查看
appendonly.aof文件,其中内容都是空的,因为这时还没有发生任何操作
-
接下来我们再打开一个新窗口,用来做连接Redis的客户端
redis-cli -a 密码 -
此时我们就开了三个窗口分别干三件不同的事情

-
我们在客户端进行key set操作
127.0.0.1:6379> set k1 hello OK -
重新打开
appendonly.aof文件查看,此时已经记录了刚才执行的操作
-
那现在我想把这个存储到rdb文件中应该怎么操作?
127.0.0.1:6379> bgsave Background saving started-
我们切回到Linux指令窗口查看文件列表,多出了
dump.rdb文件
-
再切到Redis服务窗口可以看到输出了RDB操作日志

-
用vi暴力查看dump.rdb文件内容
vi dump.rdb
-
但是这个内容好像咱也看不懂啊对吧?那怎么让他显示成我们能看懂的内容呢?
redis-check-rdb dump.rdb[root@rhys 6379]# redis-check-rdb dump.rdb #检查dump.rdb这个文件 [offset 0] Checking RDB file dump.rdb [offset 26] AUX FIELD redis-ver = '6.0.6' [offset 40] AUX FIELD redis-bits = '64' [offset 52] AUX FIELD ctime = '1647165322' [offset 67] AUX FIELD used-mem = '874864' [offset 83] AUX FIELD aof-preamble = '0' [offset 85] Selecting DB ID 0 [offset 107] Checksum OK [offset 107] \o/ RDB looks OK! \o/ #有1个key [info] 1 keys read #设置了过期时间的key个数 [info] 0 expires #已经过期的有几个 [info] 0 already expired -
AOF重写
127.0.0.1:6379> set k1 aaa OK 127.0.0.1:6379> set k1 bbb OK 127.0.0.1:6379> set k1 ccc OK
-
切到Redis客户端窗口执行
BGREWRITEAOF指令127.0.0.1:6379> BGREWRITEAOF Background append only file rewriting started -
再切到Linux指令窗口查看一下重写后的AOF文件大小

-
-
接下来我们再来看看v4.0以后RDB+AOF混合的新特性
Ctrl+C退出当前Redis服务
Exit退出当前Redis客户端
清除appendonly.aof和dump.rdb文件
rm -rf /var/lib/redis/6379/*
将配置文件中RDB+AOF混合再开启,将aof-use-rdb-preamble no修改为aof-use-rdb-preamble yes
vi /etc/redis/6379.conf

重启Redis服务
redis-server /etc/redis/6379.conf
重新开启Redis客户端
redis-cli -a 密码
查看appendonly.aof文件
vi appendonly.aof

此时到Redis客户端执行BGREWRITEAOF指令
127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started
重新打开appendonly.aof文件查看

那什么是增量追加日志呢?
再次打开appendonly.aof文件查看

这就是我们所说的增粮日志+全量时点数据
咱们再来落一个RDB对比一下AOF
查看Linux指令窗口中的文件列表

再来看appendonly.aof文件和dump.rdb内容
vi appendonly.aof

vi dump.rdb











