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