Redis缓存删除策略如何设计以适应长尾数据的高效清除?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1084个文字,预计阅读时间需要5分钟。
Redis缓存删除策略主要分为定时删除、过期删除与惰性删除。前两者是主动删除,后者是被动删除。定时删除为key设置过期时间,时间一到由定时器删除;过期删除由定时器检查过期key并删除;惰性删除则是在访问key时检查是否过期,过期则删除。
Redis 缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。
1 定时删除为 key 设置一个过期时间,时间一到,由定时器任务删除这个 key。
优点:节省内存,因为 key 一过期,就会被立即删除。
缺点:CPU压力大,因此相当于 CPU 在轮询判断当前时间是否需要执行删除任务。
key 过期时不处理,直到访问该 key 时才删除。(很懒,直到最后一刻才执行)
优点:节省 CPU 资源,因为直到访问该 key 时,才用到 CPU。
缺点:key 过期后,仍然占用内存空间,可能导致内存出现大量过期的 key。
3 定期删除相当于前两种策略的折中。
定期删除是每隔一段时间随机抽取一些过期 key 执行删除操作。它限制删除操作的时长与频率避免占用大量 CPU 资源。同时它还删除那些过期键避免占用大量内存资源1。
本文共计1084个文字,预计阅读时间需要5分钟。
Redis缓存删除策略主要分为定时删除、过期删除与惰性删除。前两者是主动删除,后者是被动删除。定时删除为key设置过期时间,时间一到由定时器删除;过期删除由定时器检查过期key并删除;惰性删除则是在访问key时检查是否过期,过期则删除。
Redis 缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。
1 定时删除为 key 设置一个过期时间,时间一到,由定时器任务删除这个 key。
优点:节省内存,因为 key 一过期,就会被立即删除。
缺点:CPU压力大,因此相当于 CPU 在轮询判断当前时间是否需要执行删除任务。
key 过期时不处理,直到访问该 key 时才删除。(很懒,直到最后一刻才执行)
优点:节省 CPU 资源,因为直到访问该 key 时,才用到 CPU。
缺点:key 过期后,仍然占用内存空间,可能导致内存出现大量过期的 key。
3 定期删除相当于前两种策略的折中。
定期删除是每隔一段时间随机抽取一些过期 key 执行删除操作。它限制删除操作的时长与频率避免占用大量 CPU 资源。同时它还删除那些过期键避免占用大量内存资源1。

