redis 缓存过期处理与内存淘汰机制

Redis 缓存过期处理与内存淘汰机制

缓存过期处理

  • (主动)定时删除

    定时随机的检查过期的key,如果过期则清理删除。

    # 默认每秒钟10次,把这个设置的越大意味着占用的CPU也就越多
    hz 10
    
  • (被动)惰性删除

    当客户端请求一个已经过期的key的时候,那么redis会检查这个key是否过期,如果过期了,则删除,然后返回一个nil。这种策略对 CPU 比较友好,不会有太多的损耗,但是内存占用会比较高。

内存淘汰机制

  • maxmemory :当内存已使用率到达配置值,则开始清理缓存

    如果没有设置maxmemory,将导致Redis在达到堆限制时以内存不足异常终止。

    在设置了maxmemory之后,当内存使用达到maxmemory时,Redis将使用maxmemory-policy指定的策略对缓存进行删除。

    # 当内存已使用值达到 maxmemory,开始清理缓存 
    # 单位:bytes(字节),123000000Byte ≈ 117.3M
    maxmemory 123000000
     
    maxmemory-policy 缓存淘汰策略值枚举:
     
    # volatile开头的策略针对设置了过期时间的key
    # allkeys开头的策略针对内存中所有的key
     
    # noeviction:旧缓存永不过期,新缓存设置不了,返回错误
    # allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
    # allkeys-random:在所有的缓存中随机删除(不推荐)
    # volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
    # volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
    * volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值