redis数据持久化
redis数据持久化就是,redis可以实现永久保存数据
实现数据持久化有两种方式
通过rdb文件
rdb文件,/var/lib/redis/6379/dump.rdb,储存的是redis的实际数据信息 dump.rdb文件,默认开启
查看rdb文件的存盘策略
save 时间(秒) 变量个数
[root@host145 ~]
save 900 1
save 300 10
save 60 10000
通过aof文件
aof文件,存储的是redis执行写操作的命令,与MySQL的binlog日志功能相似 aof文件,默认不开启
开启aof文件有方式
- redis服务内执行命令立即开启,再执行config rewrite实现永久开启
- 修改配置文件,重启redis服务永久开启。此方法会丢失服务器原有数据
vim /etc/redis/6379.conf
appendonly yes
appendfilename "appendonly.aof"
redis数据备份
- 备份rdb文件,实现数据备份
- 备份aof文件,实现数据备份
redis数据恢复
使用rdb文件恢复数据
高性能的持久化实现 —— 创建一个子进程来执行持久化,先将数据写入临时文件,持久化过程结束后,再用这个临时文件替换上次持久化好的文件;过程中主进程不做任何IO操作比较适合大规模数据恢复,且对数据完整性要求不是非常高的场合 意外宕机时,丢失最后一次持久化的所有数据
- 停止redis服务
- 删除原有的dump.rdb文件
- 把备份的dump.rdb文件copy到数据库目录
- 开启redis服务
使用aof文件恢复数据
可以灵活设置持久化方式 出现意外宕机时,仅可能丢失1秒的数据 与aof 相关的配置项 ( vim /etc/redis/6379.conf )
appendfsync always
appendfsync everysec
appendfsync no
auto-aof-rewrite-min-size 64mb
auto-aof-rewrite-percentage 100
- 停止redis服务
- 删除原有的appendonly.aof文件,dump.rdb文件
- 把备份的appendonly.aof文件copy到数据库目录
- 开启redis服务
redis数据aof文件损坏修复
redis-check-aof --fix /aof文件路径
验证数据备份恢复
通过rbd文件备份恢复数据
[root@host145 ~]
192.168.44.145:6379> keys *
1) "y"
2) "z"
3) "x"
192.168.44.145:6379> exit
[root@host145 ~]
[root@host145 ~]
dump.rdb
[root@host145 ~]
192.168.44.145:6379> flushall
OK
192.168.44.145:6379> keys *
(empty list or set)
192.168.44.145:6379> exit
[root@host145 ~]
[root@host145 ~]
Could not connect to Redis at 192.168.44.145:6379: Connection refused
Could not connect to Redis at 192.168.44.145:6379: Connection refused
not connected> exit
[root@host145 ~]
[root@host145 ~]
[root@host145 ~]
Starting Redis server...
[root@host145 ~]
192.168.44.145:6379> keys *
1) "z"
2) "x"
3) "y"
192.168.44.145:6379>
通过aof文件备份恢复数据
开启aof文件
192.168.44.145:6379> keys *
1) "z4"
2) "z3"
3) "z2"
4) "z1"
192.168.44.145:6379> config set appendonly yes
OK
(0.56s)
192.168.44.145:6379> config rewrite
OK
192.168.44.145:6379> keys *
1) "z4"
2) "z2"
3) "z3"
4) "z1"
通过aof文件备份恢复
[root@host145 ~]
[root@host145 ~]
appendonly.aof
192.168.44.145:6379> flushall
192.168.44.145:6379> keys *
(empty list or set)
[root@host145 ~]
[root@host145 ~]
[root@host145 ~]
[root@host145 ~]
[root@host145 ~]
192.168.44.145:6379> keys *
1) "z2"
2) "z4"
3) "z3"
4) "z1"
|