redis 持久化机制

redis 持久化

redis 持久化机制

在指定时间间隔内,将内存当中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存,内存当中的数据,如果我们一断电那么数据就会丢
redis提供两种方式进行持久化

  • RDB持久化默认
    原理是redis会单独创建(fork)一个与当前进程一摸一样的子进程来进行持久化,这个子进程所有数据(变量 环境变量 程序计数器)都和原进程一摸一样,会先将数据写到一个临时文件中,待持久化结束了在用这个临时文件替换上次持久化的文件,整个过程,主进程不进行任何的io操作,这就确保了极高的性能。
    redis启动–>定时任务进行持久化–>持久化文件–>关机–>内存数据丢失
    开机–>读取持句话文件–>数据从磁盘回到内存
    1.持久化文件在哪里:默认在启动目录下,可以修改配置文件dir参数修改
    2.什么时候fork子进程,或者什么时候出发rdb持久化机制:
    shotdown时,如果没有开启aof,会出发配置文件的快照配置
    执行命令save或者bgsave save是只管保存,其他不管。全部阻塞使用主进程进行持久化,bgsave:redis会在后台异步进行快照操作,同时可以相应客户端的请求。
    缺点:如果没有持久化之前宕机数据就会丢失

  • AOF(append only file)持久化
    1 持久化文件:和rdb一样跟配配置文件中dir参数来决定
    2 开启aof:配置文件中 appendonly参数
    3 触发机制根据参数决定:
    no:表示等操作几桶进行数据缓存同步到磁盘(效率快,持久化没保证)
    always:同步持久化,每次发生数据变更时,立即记录到磁盘(效率低,安全)
    everysec:表示每秒同步一次(默认值,很快,但可能会丢一小部分数据)推荐使用
    4 aod重写机制
    当aof文件增长到一定大小到时候redis能够调用bgrewriteaof对日志文件进行重写,当aof文件大小增长率大于该配置项时自动开启重写(这里指超过原大小当100%)
    auto-aof-rewrite-percentage100
    当aof文件增长到一定大小的时候redis能够调用bgrewriteaof对日志文件进行重写,当aof文件大小大于该配置项时自动开启重写
    auto-aof-rewrite-min-size 64mb

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值