redis持久化详解
一、RDB持久化
RDB 持久化 可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 优点:快速持久化、占用磁盘空间少、适合于用做备份,主从复制也是基于RDB持久化功能实现的。 缺点:当断电,重启时,RDB会丢失少部分数据。
rdb持久化核心配置参数
vim /nosql/6379/redis.conf dir /nosql/6379 dbfilename dump.rdb save 900 1 save 300 10 save 60 10000 配置分别表示: 900秒(15分钟)内有1个更改 300秒(5分钟)内有10个更改 60秒内有10000个更改
RDB持久化高级配置
# 后台备份进程出错时,主进程停不停止写入?主进程不停止容易造成数据不一致 stop-writes-on-bgsave-error yes # 导出的rdb文件是否压缩、如果rdb的大小很大的话建议这么做 rdbcompression yes # 导入rdb恢复时数据时,要不要检验rdb的完整性、验证版本是不是一致 rdbchecksum yes # 导出来的rdb文件名 dbfilename dump.rdb # rdb的放置路径 dir ./
二、AOF持久化(append-only log file)
记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。
AOF文件中的命令全部以Redis协议的格式来保存,新命令会被追加到文件的末尾。
优点:可以最大程度保证数据不丢
缺点:日志记录量级比较大
AOF持久化配置
# 是否打开aof日志功能
appendonly yes
# 每1个命令,都立即同步到aof appendfsync always # 没1秒写入1次 appendfsync everysec
# 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. appendfsync no vim /nosql/6379/redis.conf appendonly yes appendfsync everysec
AOF持久化高级配置
# 正在导出rdb快照的过程中,要不要停止同步aof no-appendfsync-on-rewrite yes/no # aof文件大小比起上次重写时的大小,增长率100%时重写,缺点:业务开始的时候,会重复写多次。 auto-aof-rewrite-percentage 100 # aof文件,至少超过64M时,重写 auto-aof-rewrite-min-size 64mb
补充:
redis持久化方式有哪些?有什么区别?
rob:基于快照的持久化,速度更快,一般用做备份,主从复制也是依赖于rdb持久化功能。
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog