0条评论
还没有人评论过~
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
RDB是一个非常紧凑的单一文件,方便备份与传输;
RDB在持久化的时候只需要fork出一个子进程,接下来的持久化工作由子进程完成,因此能最大限度得优化redis性能;
与AOF相比,在恢复大的数据集的时候,RDB方式会更快一些;
配置文件(RDB部分)
#save 间隔秒 操作数
#使用 save "" 禁用RDB
#900秒内有一次操作触发RDB
save 900 1
#300秒内有10次操作触发RDB
save 300 10
#60秒内10000次操作触发RDB
save 60 10000
#RDB异常时是否暂停接受写操作,默认是
stop-writes-on-bgsave-error yes
#RDB是否开启压缩,默认是
rdbcompression yes
#RDB是否开启CRC64校验位
rdbchecksum yes
#RDB快照文件名称
dbfilename dump.rdb
#没启用持久化的Redis实例是否删除其RDB文件,默认否
rdb-del-sync-files no
#RDB文件目录,默认使用命令的当前目录
dir ./
命令
#检查RDB文件,显示内容,如果发生错误会提示哪里错误
redis-check-rdb dump.rdb
#CLI中手动操作执行RDB
BGSAVE
AOF全称是append only file,在redis中则是只追加写入命令
配置文件(AOF部分)
#是否启用AOF,默认no
appendonly yes
#AOF文件名称
appendfilename "appendonly.aof"
#AOF写入刷新的三个级别,默认everysec
#everysec 每秒刷新,最多丢失1秒数据
#always 每次操作刷新
#no 每当页缓存满了才自动刷写到磁盘,最多丢失一个页缓存的数据
#页缓存一般操作系统默认4k,可调整(4的倍数)
appendfsync everysec
#如果子进程(RDB)正在操作,是否暂停AOF刷写到磁盘,默认否
#开启时可能会争抢磁盘IO,但数据丢失可能会更少
no-appendfsync-on-rewrite no
#再次自动重写AOF文件触发的大小和首次重写时大小的百分比(如当前配置为,和下面的64mb,相比较增长了100%则触发重写)
#指定为0时禁用自动AOF
auto-aof-rewrite-percentage 100
#首次自动重写AOF文件的大小
auto-aof-rewrite-min-size 64mb
#加载AOF数据时是否截断检查,默认是
aof-load-truncated yes
#AOF重写时是否启用混合(老数据会以RDB方式存储),默认启用
aof-use-rdb-preamble yes
命令
#检查AOF文件,显示内容,如果发生错误会提示哪里错误
redis-check-aof appendonly.aof
#CLI中手动操作执行重写AOF文件
BGREWRITEAOF
Redis默认使用RDB方式进行持久化
如果数据丢失容忍度较高低考虑使用AOF,如果同时需要快速恢复则可以同时使用RDB和AOF,代价是性能开销更大
如果更考虑性能,数据丢失容忍度较高(如作为缓存使用),则考虑使用RDB,恢复更快,开销更低
来源:oschina
链接:https://my.oschina.net/u/4075062/blog/4957726