Redis键过期时间设置与过期删除策略详解

创始人
2024-12-30 22:52:12
0 次浏览
0 评论

redis设置键的过期时间

❑EXPIRE命令用于设置密钥生存期(以ttl秒为单位)。
❑PEXPIRE命令用于设置密钥生存期(以ttl毫秒为单位)。
❑EXPIREAT命令用于设置时间戳中指定的键的过期时间(以秒为单位)。
❑PEXPIREAT命令用于设置时间戳中指定的密钥的过期时间(以毫秒为单位)。
例如

Redis过期删除策略和内存淘汰策略

Redis过期删除策略和内存淘汰策略详解Redis可以为键指定过期时间,因此必须有相应的机制来删除过期键值对。
这就是键值删除的过期策略。
有4个命令设置key过期时间,设置字符串的同时有3个命令设置过期时间。
TTL命令可以查询密钥的剩余生存时间,PERSIST命令可以取消密钥的过期时间。
Redis通过过期字典存储所有key的过期时间,在查询key时,首先检查过期字典中是否存在该key。
过期键判断过程分为定时删除策略、惰性删除策略和周期删除策略,每种策略都有自己的优缺点。
Redi的过期删除策略采用惰性删除+周期性删除来平衡CPU时间的合理使用和避免内存浪费。
惰性删除是通过db.c文件中的expireIfNeeded函数实现的,定期删除是通过expire.c文件下的activeExpireCycle函数实现的。
定期擦除的默认间隔是每秒检查10次,随机检查的数量是20个密钥。
当运行内存超过最大设置内存时,会触发Redis内存淘汰策略。
分为两种策略:无数据消除和数据消除包括noeviction、易失性-lru、易失性-ttl、allkeys-lru、allkeys-random。
易失性随机,易失性lfu和易失性类型lfu等。
noeviction表示不消除任何数据,volatile-lru表示消除设定过期时间的数据,allkeys-lru表示在所有数据范围内消除等。
您可以通过configgetmaxmemory-policy命令查看当前的内存淘汰策略。
LRU算法和LFU算法是两种Redis内存淘汰策略,LRU选择淘汰最近最少使用的数据,LFU选择淘汰访问频率最低的数据。
Redis实现的LRU算法采用随机采样的方式来淘汰数据,而LFU算法则记录数据访问的次数和频率,选择访问频率最低的数据进行淘汰。
在LFU算法中,logc用于存储访问频率,随着时间的推移,访问频率会降低。
访问频率考虑了密钥的访问周期。
redis.conf提供了配置项来调整LFU算法并控制logc的增长和节流。

redis:设置键的生存时间和过期时间

在Redis数据库中,密钥的生命周期管理是通过指定生存时间和过期时间来实现的。
EXPIRE命令用于指定给定密钥的生命周期。
当时间为零时,密钥将被自动删除。
例如,INCR和LPUSH等命令不会改变密钥的生命周期,而RENAME命令也会影响重命名后密钥的生命周期。
要控制密钥的生命周期,可以使用PERSIST命令删除密钥的生命周期,使其成为永不过期的“持久”密钥。
EXPIRE和PEXPIRE命令可用于更新或更改密钥生命周期,其中EXPIRE以秒为单位,PEXPIRE以毫秒为单位。
EXPIREAT命令接受Unix时间戳,而PEXPIREAT是毫秒时间戳版本。
为了检测密钥的剩余生命周期,TTL命令以秒为单位返回,而PTTL命令以毫秒为单位返回。
TTL和PTTL都可以帮助您了解密钥何时过期,以便您可以相应地进行管理。
Redis还提供两种过期键删除策略:定时删除和惰性删除。
计划删除创建一个计时器,在密钥过期时立即删除该密钥。
它对内存友好,但可以使用CPU。
延迟删除在检索密钥时检查密钥是否已过期,这对CPU友好,但可能导致内存泄漏。
定期删除是两者的结合,定期检查数据库和删除过期密钥,目的是平衡CPU和内存的使用。
在实际应用中,例如在用户会话管理中,可以利用过期时间来控制用户活动记录的生命周期,例如在用户停止浏览60秒后删除会话记录。
Redis的过期键删除策略保证了内存的高效管理和CPU使用的优化。
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
Linux Redis操作指南:安装、配... Linux系统进入redis并查询值1.进入redisredis-cli2.获取...