redis 持久化

rdb持久化
1.redis的默认持久化方式
rdb持久化配置
1.dbfilename dump.rdb  设置rdb备份文件的名字
save 900 1  900秒发生一次写操作则备份一次
save 300 10  300秒发生一次写操作则备份一次
save 60 10000 一分钟发生1w次写操作,则备份一次
dir ./ 数据库文件保存的位置
stop-write-on-bgsave-error yes   表明持久化出错时,停止写文件, no表示出错后,继续写文件
rdbchecksum yes  表明写入或者读文件时,检查文件是否有损坏
快照分为手动和自动触发
手动触发:
    save  bgsave会生成快照
自动触发:
    flushall时触发
    shutdown时触发
    主从全量复制时,触发
    save m n 时, m秒n次时触发
 
 
 
aof持久化
aof持久化,将redis的每条写命令追加到磁盘的aof文件中,所以 aof持久化会稍微影响redis的性能,但性能的损耗,在可接受范围内
 
aof将每一条写操作,已redis通讯协议添加至缓冲区aof_buf,这样的好处是在大量的写入请求情况下,将缓冲区命令一次性写入文件,减少i/o次数,提高性能
同步命令到硬盘,everysec 定时,同步命令到硬盘,平衡cpu,及丢失时间较小
 
重写瘦身
手动触发:
客户端执行bgrewriteaof命令
自动触发:
aof配置
    持久化过程:
        fork子进程,对内存重写,且新写入的命令,写入aof_buf  也写入aof_write_buf
        完成重写,用新的aof文件替换老的
 
aof配置参数:
auto-aof-rewrite-min-size 64mb
auto-aof-rewrite-percentage 100 每次在前一次执行的两倍后执行
appendfsync everysec 每秒刷新一次到磁盘
appendonly no 表示关闭aof
dir /etc/reids 存放路径
 
rdb-aof混合持久化
混合持久化是4.0版本以后的,默认是关闭的,通过aof-use-rdb-preamble配置参数控制 yes 表示开启
redis aof文件开头时rdb格式先加载rdb内容再加载剩余的aof
 
优缺点:
1.恢复快
2.占有空间小
3.提升性能
 
1.有版本限制
2.阅读性差
posted @ 2019-03-07 17:44  教主陈  阅读(101)  评论(0编辑  收藏  举报