redis的持久化

redis的持久化

​ 我们知道, redis是将数据存储在了内存当中, 那么当关闭服务器, 内存的资源也就会消失了, 这时存储在redis中的数据也会消失, 那么我们应该如何做呢?

  • 在redis中已经提供了两种持久化的方案
    • RDB: redis提供的一种基于快照机制实现的持久化方案, 而快照就类似于照相机, 会将一个服务器某个时刻的一个状态整体保存下来, 快照文件一般都非常的小,只有几kb左右
      • 优点: 由于持久化的文件非常小, 适合于做灾难恢复
      • 缺点: 由于redis中持久化的时机问题, 会存在数据丢失的问题
    • AOF: redis提供的一种基于日志机制实现的持久化方案, 会将用户操作的所有的命令整体的记录下来保存到日志文件中,一般文件都比较庞大
      • 优点: AOF机制可以让将用户所有的命令都记录下来, 顾其数据保存的比较完整, 不容易丢失
      • 缺点: 持久化的文件比较庞大, 不利于灾难恢复
  • RDB保存机制: redis默认是开启RDB机制
save 900 1    :  在900秒之内,如果有一个数据进行修改,就会执行一下保存
save 300 10   : 在300秒之内, 如果有10个以上的数据被修改, 就会执行一下保存
save 60 10000 : 在60秒之内, 如果有10000个以上的数据被修改. 就会执行一下保存
  • 当服务器宕机, 最大丢失数据量为在不到5分钟的时间里丢掉9999个数据
    • 一般情况下redis的不会出现宕机的现象, 除非redis中的数据将内存撑爆了, 但这个现象在大公司是不会出现的

  • AOF的保存机制:redis默认不开启

如何开启AOF:

  • 打开redis的配置文件,修改下列两个参数即可
appendonly yes    //默认此项是no,没有启动AOF机制
appendfsync everysec  //appendfsync的取值: [always everysec no]
  • always: 总是, 只要有新的命令执行, 就将其保存到文件中
    • 优点: 数据保存最完整, 几乎不会丢掉数据
    • 缺点: 大大降低了redis的性能
  • everysec: 每秒钟执行一次保存
    • 此种保存不会大幅度的降低redis的性能,但是会丢失最大1s的数据
  • no: 不执行保存, 由操作系统自动调用保存(linux一般30分钟刷新一次内存)
    • 一般不使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值