Redis过期删除策略详解_不会浪费_如果过期了它会帮你删掉然后不给你返回任何数据
Redis过期删除策略详解
Redis为了处理设置了过期时间的键,提供了三种不同的过期删除策略:惰性删除、定时删除和周期性删除。
1、惰性删除
惰性删除就像你突然想起要找的东西,你不会立即去翻找,而是先确认它是否在你想要的地方。在Redis中,当你访问一个设置了过期时间的键时,它会先检查这个键是否已经过期。如果过期了,它会帮你删掉,然后不给你返回任何数据。这样做的好处是简单而且效率高,它只在需要时才进行检查,不会浪费CPU资源。不过,坏处是,如果有许多过期键长时间没有被访问,它们会一直占用内存资源。
2、定时删除
定时删除就像设定了一个闹钟,到时间了就去做某件事。Redis会在设置键的过期时间时创建一个定时器,当时间到了,定时器就会触发,自动删除这个键。这个方法能确保过期键会被及时清理,不会浪费内存。但是,如果有很多键都需要设置过期时间,那么会创建很多定时器,这又会占用大量的CPU资源。
3、周期性删除
周期性删除就像定期打扫房间,不会遗漏任何角落。Redis会每隔一段时间就随机检查一些键是否过期,如果过期了就删除。这种方法是前两种策略的折衷,它不会像定时删除那样占用太多CPU资源,也不会像惰性删除那样占用太多内存资源。
信息对比
策略 | 优点 | 缺点 |
---|---|---|
惰性删除 | 简单高效,不占用过多CPU资源 | 过期键可能长时间占用内存 |
定时删除 | 保证过期键被及时删除,不占用过多内存资源 | 占用较多CPU资源 |
周期性删除 | 折衷策略,不占用过多CPU或内存资源 | 可能不会及时删除所有过期键 |
延伸阅读:Redis的概念
Redis(Remote Dictionary Server)是一款开源的键值存储系统,它支持各种不同类型的数据结构,如字符串、列表、集合、有序集合、哈希等。Redis由于其高性能和丰富的数据类型,常被用于缓存、消息队列、排行榜等场景。