redis过期策略有哪些?内存淘汰机制有哪些?

本文探讨了Redis的过期策略,包括定期删除和惰性删除,并解释了为何内存空间在key过期后可能未释放。当内存空间接近满载时,介绍了Redis的内存淘汰策略,如volatile-lru、volatile-ttl、volatile-random等,以及针对所有key的淘汰选项。通过理解这些机制,可以更好地管理和优化Redis的内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  小咸儿的项目中使用redis来做缓存,从而减轻数据库的压力,但是redis中的key和数据过期后,为什么内存空间还没有释放呢?如果内存空间将要满的时候该怎么办呢?接下来小咸儿就来解释一下该如何解决这两个问题。


过期策略:定期删除+惰性删除

redis中的key和数据过期后,为什么内存空间还没有释放呢?

  既然提到redis的过期策略,那么该如何解决这个问题就有点苗头了。先来一张统领全局的图

在这里插入图片描述

定期删除

  redis默认每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。

  问题:因为是随机抽取,定期删除可能导致很多过期key到了时间并没有被删除掉,这时候该怎么办呢?惰性删除该上场了。

惰性删除

  在你获取某个key时,redis会检查一下,是否设置了过期时间?设置了过期时间是否过期了?如果过期了就删除,不会给你返回任何东西。

  问题:实际上,这仍然有问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值