前言
redis 的一大特点就是持久化。
原理
RDB 持久化 :根据快照实现
优点:速度快,适合备份,主从复制也是基于此。新快照会覆盖上一次快照。
缺点:因为是快照,所以会存在数据丢失。
AOF 持久化:记录全部操作实现
优点:能够最大程度的保证数据不丢。
缺点:日志量大。
参数说明:
RDB 持久化 需要用到的参数为:
dir /home/redis/data -- 文件路径 dbfilename dump.rdb -- 文件名
登录Redis 执行命令:
save -- 保存当前数据快照
或者
redis-cli -a 123456 save -- 直接执行
设置自动持久化
save 900 1 -- 900秒有一个变化,保存一次快照 save 300 10 -- 300秒有十个变化,保存一次快照 save 60 10000 -- 60秒有万个变化,保存一次快照
AOF 持久化 需要用到的参数为:
appendonly no -- 是否开启AOF持久化 yes 表示开启 appendfsync everysec --always : 每次操作都记录日志, everysec: 表示每秒执行一次记录日志。no:表示由系统自行刷新。
appendfilename "appendonly.aof" -- AOF持久化日志的文件名
就可以正常看到持久化数据文件了。
这个数据文件在Redis重启之后,可以重新加载回Redis缓存。
额外说明:
SAVE: 前台,阻塞线程,影响redis正常写入。
BGSAVE:后台,开启子线程执行。
总结
RDB 持久化 :根据快照实现
优点:速度快,适合备份,主从复制也是基于此。新快照会覆盖上一次快照。
缺点:因为是快照,所以会存在数据丢失。
AOF 持久化:记录全部操作实现
优点:能够最大程度的保证数据不丢。
缺点:日志量大。