删除策略-定期删除|学习笔记

简介: 快速学习删除策略-定期删除

开发者学堂课程【Redis 入门到精通(进阶篇):删除策略-定期删除】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13440


删除策略-定期删除

 

内容介绍

删除策略的方法

删除策略比对

 

本章主要讲解数据删除策略的方法与删除策略的三个方法比对


一,删除策略的方法

1.定期删除

拿空间换时间拿时间换空间的两种方法都比较极端定期删除是比较折中的方法

此图为讲解定期删除

image.png

定义:redis 启动服务器初始化时读取配置 sever.hz 的值默认为10。

(1).severCron()

这个默认值代表每秒钟执行 sever.hz severCron()。它是控制进度的对服务器进行一个定时轮询

(2).databasesCron()

轮询这个工作也叫做databasesCron(),继续对里边的每一个库进行录取它会挨个访问这些信息访问

(3).activeExpireCycle()

之后会对 databasesCron() 执行第三个操作这个操作命名为activeExpireCycle(),activeExpireCycle() 对每一个 expire[*] 逐一进行检查每次执行 250ms/sever.hz。也就是检查的时间定义为四分之一秒

作用:对某个 expire[*]  检测时随机挑选 W key 检测

(4).current_dp

参数 current_dp 用于记录activeExpireCycle() 进入哪个expire[*]执行。current_dp 专门保存当前的执行到位举例为如果把零检查完它会记下来如果把一检查完它会记下来这时到到期时由于已经记住会保障它的轮询不会出现把某一个给落下的情况

(5).注意点

如果 key 超时则删除 key。

如果一轮中删除的key的数量大于 W*25%,循环该过程

如果一轮中删除的 key 的数量小于等于 W*25%,检查下一个 expire[*],0-15循环一个一个检查完是靠databasesCron() 来完成的而检查任意一个是靠activeExpireCycle() 来完成的

.W取值=ACTIVE_EXPIRE_CYCLE_LOOKUPS_PER_LOOP属性值也就是说活动时长的周期查找一个循环次数每次循环在里面找多少个就是它的一个随机策略挑选 k 的数量就靠这个参数设定

(6).总结

周期性轮询 redis 库中的时效性数据采用随机抽取的策略利用过期数据占比的方式控制删除频度

特点:①.CPU 性能占用设置有峰值检测频度可自定义设置内存压力并不是很大长期占用内存的数据会被持续清理

整体来说周期性抽查储存空间随机抽查重点抽查

 

二,删除策略比对

(1).定时删除

节约内存无占用不分时段占用 CPU 资源频度高总体来说定时删除是拿时间换空间

(2).惰性删除

内存占用严重延时执行,CPU 利用率高总体来说惰性删除是拿空间换时间

(3).定期删除

内存定期随机清理每秒花费固定的 CPU 资源维护内存总体来说定期删除是用随机抽查,重点抽查。

相关文章
|
存储 NoSQL 算法
Redis学习12:删除策略:过期数据、数据删除策略、逐出策略
过期的数据真的删除了吗? 过期数据是指曾经有效的数据,并不是立马被删除的。
Redis学习12:删除策略:过期数据、数据删除策略、逐出策略
|
NoSQL Redis 开发者
数据删除策略|学习笔记
快速学习数据删除策略
数据删除策略|学习笔记
|
存储 缓存 监控
删除策略-逐出策略|学习笔记
快速学习删除策略-逐出策略
删除策略-逐出策略|学习笔记
|
数据采集 资源调度 运维
数据清理| 学习笔记
快速学习数据清理。
数据清理| 学习笔记
|
NoSQL Redis 数据库
删除策略-过期数据的概念|学习笔记
快速学习删除策略-过期数据的概念
删除策略-过期数据的概念|学习笔记
|
OLTP 数据库
数据的删除与修改
数据的删除与修改
197 0
|
消息中间件 存储 RocketMQ
删除过期文件机制分析|学习笔记
快速学习删除过期文件机制分析
|
开发者 索引
删除|学习笔记
快速学习删除。