分析&回答
如何设置过期时间?
为Key设置过期时间,expire key time(以秒为单位)。
定期删除
也叫主动删除:redis会定期主动淘汰一批已经过期的key。
- 当前已用的内存超过maxmemory限定时,触发主动清理策略。
- 如果redis的内存占用过多的时候,如果redis的内存占用过多的时候,会进行内存淘汰。
惰性删除
也叫被动删除:当读/写一个已经过期的key时,会直接删掉这个过期的key。
如果 Redis 内存不足会有那些策略
- noeviction:报错,当内存不足以容纳新写入数据时,新写入操作会报错
- allkeys-lru:在键空间中,移除最近最少使用的key
- allkeys-random:在键空间中,随机移除某个key
- volatile-lru:在设置了过期时间的键空间中,移除最近最少使用的key
- volatile-random:在设置了过期时间的键空间中,随机移除某个key
- volatile-ttl:在设置了过期时间的键空间中,有更早过期时间的key优先移除
如何选择
- 一般做缓存的话,使用allkeys-策略;
- 如果使用其持久化策略的话,volatile-策略。
- 最经常用的是allkeys-lru。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!