redis设计之持久化设置

redis的过期键删除策略

定时删除:为每个键设置过期时间的同时,设置一个定时器,即一过期就删除,这个方法对内存友好,但是没过期时维持大量的计时器对CPU不好

惰性删除:放任不管,用到一个键时,坚持该键是否过期,过期的话删除,否则不删除

定期删除: 每隔一段时间,对数据库进行检查,删除过期的键盘。

redis配合使用惰性和定期两种策略

RDB

执行SAVE或者BGSAVE创建一个RDB时,程序会对数据库中的键进行检查,已经过期的键不会被保存到RDB文件中,即过期键对RDB文件没有影响。 于此类似,重写AOF时候,过期键也不会被保存到重写后的AOF文件中

启动redis时,若是服务器启用了RDB,服务器将会载入RDB文件。

如果服务器以主服务器的方式进行运行,过期键会被删除;若是以从服务器方式运行,即使过期也会载入

AOF

服务器以AOF方式运行时,若是有还没被删除的过期键,也不会对AOF有影响,当该键被删除时,会向AOF追加一条DEL,显示记录该键已被删除

若是访问过期键message(get message),服务器会执行以下三个动作:

  1. 首先删除message
  2. 追加一条DEL命令到AOF
  3. 向执行get命令的服务器返回一条空回复

复制
当服务器运行在复制模式下,从服务器当且仅当收到主服务器的DEL才会删除过期键。主服务器在删除一个过期键会给所有的从服务器发送一个DEL命令。

RDB && AOF

两个redis命令会生成RDB文件,SAVE 和 BGSAVE.SAVE会阻塞服务器,生成RDB文件的过程中服务器啥都不能干。BGSAVE则是子进程创建rdb,父进程可以继续执行别的命令。

RDB阻塞命令,AOF消耗内存

rdb文件是在服务器启动时自动进行的,开启了AOF的话,优先使用AOF

rdb持久化主要是保存键值对到rdb文件中,AOF持久化则主要是保存写命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值