Redis过期删除策略详解_不会浪费_如果过期了它会帮你删掉然后不给你返回任何数据

Redis过期删除策略详解

Redis为了处理设置了过期时间的键,提供了三种不同的过期删除策略:惰性删除、定时删除和周期性删除。

1、惰性删除

惰性删除就像你突然想起要找的东西,你不会立即去翻找,而是先确认它是否在你想要的地方。在Redis中,当你访问一个设置了过期时间的键时,它会先检查这个键是否已经过期。如果过期了,它会帮你删掉,然后不给你返回任何数据。这样做的好处是简单而且效率高,它只在需要时才进行检查,不会浪费CPU资源。不过,坏处是,如果有许多过期键长时间没有被访问,它们会一直占用内存资源。

2、定时删除

定时删除就像设定了一个闹钟,到时间了就去做某件事。Redis会在设置键的过期时间时创建一个定时器,当时间到了,定时器就会触发,自动删除这个键。这个方法能确保过期键会被及时清理,不会浪费内存。但是,如果有很多键都需要设置过期时间,那么会创建很多定时器,这又会占用大量的CPU资源。

3、周期性删除

周期性删除就像定期打扫房间,不会遗漏任何角落。Redis会每隔一段时间就随机检查一些键是否过期,如果过期了就删除。这种方法是前两种策略的折衷,它不会像定时删除那样占用太多CPU资源,也不会像惰性删除那样占用太多内存资源。

信息对比

策略 优点 缺点
惰性删除 简单高效,不占用过多CPU资源 过期键可能长时间占用内存
定时删除 保证过期键被及时删除,不占用过多内存资源 占用较多CPU资源
周期性删除 折衷策略,不占用过多CPU或内存资源 可能不会及时删除所有过期键

延伸阅读:Redis的概念

Redis(Remote Dictionary Server)是一款开源的键值存储系统,它支持各种不同类型的数据结构,如字符串、列表、集合、有序集合、哈希等。Redis由于其高性能和丰富的数据类型,常被用于缓存、消息队列、排行榜等场景。