Redis持久化问题

  1. redis有两种持久化方式一种是快照(snapshotting),另一种就是只追加文件(append-only file),通过合理的配置两种持久化方式可以有效的保存内存中的数据,将数据丢失量降到最低。
  2. 快照(snapshotting):
    1. 快照可以将某一时刻的所有数据都写入硬盘中,便于服务器重启后的数据恢复
    2. redis默认开启快照持久化,默认配置为
      1. save 900 1                       每900秒有一次数据写入,自动触发bgsave(在后台异步的创建快照进行持久化)
      2. save 300 10                     每300秒有10次数据写入,自动触发bgsave
      3. save 60 10000                 每60秒有10000次数据写入,自动触发bgsave
    3. 配置可以根据需求自己更改,以上是redis通过配置的形式自动给你持久化,当然我们也可以通过手动的方式持久化,使用redis中的save命令,在redis接收到save命令起不再相应客户端的任何命令,直到快照创建完毕,若想在此期间也可以操作redis,我们可以选择使用reids的bgsave命令,异步在后台创建快照持久化数据,原理是会调用fork创建一个子进程,由子进程将快照写入硬盘
    4. 缺点:如果系统发生崩溃,则会丢失在最近一次生成快照之后的发生更改的数据,例如8:00创建了一个快照,9:00发生了系统崩溃,8:00 - 9:00之间发生的数据更改会全部丢失。
  3. AOF持久化(append-only file):
    1. AOF持久化会将被执行的写命令写到AOF文件的末尾,以此记录数据的变化,如若服务器宕机,则从新加载一遍aof文件即可恢复。
    2. redis默认关闭aof持久化,开启需要将配置文件中appendonly no ->appendonly yes,
      1. appendfsync always             每个redis命令都会同步写入硬盘,这样做会严重降低redis的性能,不建议使用
      2. appendfsync everysec         每秒执行一次同步,显示的将多个写命令同步到硬盘
      3. appendfsync no                    让操作系统决定何时进行同步
    3.  配置可以根据实际需求自己更改,选取最适合的配置,但个人建议使用appendfsync everysec,因为使用appendfsync everysec  和不设置aof时性能没有太大差别,而使用appendfsync always则在数据量大一点的情况下回严重影响redis的速度,转式硬盘每秒能处理200个写命令,固态硬盘每秒能处理几万个写处理,在大数据量的情况下回频繁的对硬盘进行写操作,对固态硬盘影响很严重,会引发写入放大,在某些情况下甚至会将固态硬盘的寿命从原来的济南降低为几个月,所以在选择aof同步频率时要根据实际需求及硬件条件来抉择
    4. 缺点: aof最大的缺点就是体积大小了,假如内存中的数据量不断增大,由于aof是追加写入文件方式,会导致aof文件慢慢的增大,最极端的情况下会占用整个硬盘。但是redis中有相应的aof重写命令bgrewriteaof命令可以进行从谢aof文件去除文件中冗余的命令,在配置文件中可也以进行设置  auto-aof-rewrite-percentage 100      auto-aof-rewrite-min-size 64mb意味着当aof体积增大一倍(100%)或者当aof文件的体积大于64mb时会触发bgrewriteaof命令进行aof重写
  4. 合理的使用快照和aof持久化,可以最大程度的将内存中的数据备份下来,一般来说都是将一个redis服务器上的数据备份到不同的地方,有条件的可以将一个服务器上的数据备份到其他服务器上,总之多备份总是好的
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值