Redis持久化

1.持久化方式

快照:

  • Msyql dump
  • Redis RDB

写日志:

  • Mysql BingLog
  • Hbase HLog
  • Redis AOF

 

2.什么是RDB

Redis(内存) ————创建————> RDB二进制文件(硬盘)

Redis <——————启动载入—————RDB二进制文件

 

3.触发生成快照的三种方式

  • save(同步)
  • bgsave(异步)
  • 根据配置自动生成快照

save命令

client ———执行save命令———>(阻塞)Redis ——创建——> RDB二进制文件

 

bgsave命令

client ———执行save命令———>(异步方式,fork子进程生成快照)Redis ——创建——> RDB二进制文件

生成快照期间,redis服务器仍然可响应其他客户端

 

save与bgsave的对比

命令 save bgsave
IO类型 同步 异步
阻塞? 是(阻塞发生在fork子进程的时候)
复杂度 O(n) O(n)
优点 不会消耗内存 不阻塞客户端命令
缺点 阻塞客户端命令 需要fork,消耗内存

 

 

 

 

 

 

 

 

自动生成RDB

修改配置文件,设置参数,不需要客户端执手动执行命令

配置 seconds changes 解释(三个save规则,满足任意一个规则,便更新快照)
save 900 1 间隔900秒新增有一条变化,更细快照
save 300 10 间隔300秒发生10条变化,更新快照
dave 60 10000 间隔60秒发生10000条变化,更新快照

 

 

 

 

 

 

4.最佳配置

save 900 1

save 300 10

save 60 10000

dbfilename dump-${port}.rdb(这里可以针对多客户端,生成不同端口的快照文件)

dir ./ 快照文件存放的目录

stop-writes-on-bgsave-errors yes 当备份快照过程失败时,redis服务器停止处理任何请求

rdbcomporession yes 压缩快照文件

rdbchecksum yes 检验和

 

5.其他不容忽略的触发机制

  • 全量复制:主从价格时,从服务器向master服务器发送sync命令,master服务器生成快照
  • debug reload:重启之前生成快照
  • shutdown:关掉服务器之前生成快照
posted @ 2020-08-23 15:15  coder_xds  阅读(144)  评论(0)    收藏  举报