Reds持久化

支持两种方式
RDB 在指定的时间间隔内 把内存的数据快照到磁盘 默认方式
AOF 所有server执行的命令记录到磁盘,启动时在执行一遍 在尽量减少丢数据的情况下使用,类似MySQL的binlog

RDB模式
vim /etc/redis/6379.conf
142 save 900 1 900秒有1次改变就快照一次写入磁盘
143 save 300 10 300秒有10次改变写入磁盘
144 save 60 10000 60秒有10000次改变写入磁盘
165 rdbcompression yes 可以关掉压缩功能no
177 dbfilename dump_6379.rdb 保存的文件名称
187 dir /var/lib/redis_6379 保存路径
如果要禁用RDB模式下的持久化删除 142 143 144 这三行即可

127.0.0.1:6379> SAVE 会造成阻塞 redis会先执行save不操作其他
127.0.0.1:6379> BGSAVE 后台操作会新起一个进程不会造成阻塞
Background saving started

恢复方法:
redis再次启动时会自动读取备份文件
优点:利于恢复 备份文件为二进制文件体积小 对性能衰减小 数据恢复时间短
缺点:每次保存都需要fock去一个子进程 对数据量大的时候 会有短暂的延迟 性能衰减

AOF模式
vim /etc/redis/6379.conf
504 appendonly yes
508 appendfilename “appendonly.aof” 文件名称
535 appendfsync everysec 存储方式

AOF持久化存储方式
appendfsync always #收到写命令后就立即写入磁盘,效率最差,效果最好
appendfsync everysec #每秒写入磁盘一次,效率与效果居中
appendfsync no #完全依赖操作系统,效率最佳,效果没法保证

no-appendfsync-on-rewrite如果该参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题如果设置为yes呢?这就相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据。丢失多少数据呢?在linux的操作系统的默认设置下,最多会丢失30s的数据。

存储路径与RDB路径相同
/var/lib/redis_6379/

AOF模式有一个重写功能 比如 set a 1 set a 2 set a 3 只会记录最后一条 set a 3

AOF恢复数据方法
指定的appendonly值,在文件中搜索appendonly把默认的"no"改为"yes"。这句配置意思是Redis服务重启后,默认不加载AOF持久化文件恢复数据,而是去找RDB持久化文件恢复;如果修改为"yes"后,发现有AOF文件,会首先加载AOF文件恢复数据

修复AOF 文件出错
redis-check -aof 文件名

两个持久化功能可以同时启用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值