redis基本常识

redis基本常识:大神的博客
redis内存淘汰机制:
Redis 的过期策略主要有两种思路:
1. 定期删除:
在redis中默认是每隔100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,若过期就删除,
假设有100W的key,并且都设置了过期时间,如果全量检查的话,将会耗费大量的cpu时间,因此使用随机抽取。
可能带来的问题是,已经过期的key还滞留在内存中,占用大量的宝贵内存空间
2. 惰性删除:
当key过期后,不做删除动作,等到下次使用的时候,发现key过期,这时不在返回这个key的value,直接将这个key删掉。

但是新的问题是,定期删除可有会导致很多过期的key到了时间并没有删除掉,然后我们也没有及时的去做检查,也没有惰性删除掉,此时的结果就是大量的过期key堆积在内存中,导致redis的内存被耗尽,所以最终解决办法-----------------------------redis内存淘汰机制:

  1. noeviction:当内存不足以容纳新写入数据时,新写入操作报错。(什么都不干,报错,告诉你内存不足,这样的好处是可以保证数据不丢失,这也是系统默认的淘汰策略)
  2. allkey-lru:到内存不足以容纳新写入数据时,在key空间中,删除最近最少使用的key。(常见,从所有key中使用LRU算法进行淘汰)
  3. allkey-random:当内存不足以容纳新写入数据时,在key空间中,随机删除某个key。(没有allkey-lru好)
  4. volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的key中,删除最近最少使用的key。(用得不多)
  5. volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的key中,随机删除
  6. volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的key中,有更早过期时间的key优先删除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值