redis持久化的方法及对比
1、持久化的作用
redis所有的数据保持在内存中,对数据的更新将异步的保存到磁盘上。
两种方式:
2、RDB
2.1、概念
2.2、触发机制
2.2.1、save 同步
因为是同步命令,数据量大的话可能会造成阻塞
文件策略:如果存在老的RDB文件,会用新的替换老的
2.2.2、bgsave 异步
需要linux的fork,很快,不过也有可能会阻塞掉主进程
文件策略同上
2.2.3、自动
推荐配置:
//满足任一条件就执行
save 900 1 save 300 10 save 60 10000 //文件名加入端口号,以防多redis时覆盖 dbfilename dump-${port}.rdb //写入目录另外分盘或者是大一点的目录,而不是当前目录 dir /bigdispath //写入错误时是否停止写入 stop-writes-on-bgsave-error yes //是否压缩 rdbcompression yes //是否采用校验模式 rdbchecksum yes
2.3、演示
设置60秒钟改变5次就自动保存
查看日志,自动保存
2.4、问题
耗时耗性能
容易丢数据,不可控
3、AOF
3.1、三种策略
always 每次改变数据都存
everysec 每秒存一次
no 操作系统决定
对比
一般使用第二种
AOF重写
自动优化命令、过滤过期数据
AOF重写流程
AOF重写作用
减少硬盘占有量,加快恢复速度
实现
bgrewriteaof 异步执行
AOF重写配置
4、选择