什么是rdb
即redis database,他会在配置所对应的时间内,若存储足够key,则会将这些数据持久化到指定的物理文件中作为数据还原的文件。
redis如何实现rdb备份
当redis需要进行数据持久化操作时,redis主进程会fork出与当前主进程共享一段物理内存的子进程进行持久化操作。在这期间主进程还是按照原来的工作流程走,而子进程则会不断近才io操作进行数据持久化。
具体工作流程如下图所示:
redis rdb 备份演示
为方便演示,配置30s内设置3个key进行持久化
save 3600 1
save 300 100
save 30 3
重启redis设置
/usr/local/bin/redis-server /myredis/redis.conf
30s内设置3个key
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set k1 "1"
OK
127.0.0.1:6379> set k2 "2"
OK
127.0.0.1:6379> set k3 "3"
OK
查看key是否成功设置
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
关闭redis服务端
重命名rdb文件
mv dump.rdb dump.rdb.bak
再次启动查看key已经存在
[root@VM-0-13-centos myredis]# /usr/local/bin/redis-server /opt/redis.conf
[root@VM-0-13-centos myredis]# /usr/local/bin/redis-cli
127.0.0.1:6379> keys *
(empty array)
还原rdb文件名字
mv dump.rdb dump.rdb.bak