redis运维(九)字符串(二)字符串过期时间

一   字符串过期时间

细节点: 注意'命令'的'入参'和'返回值'

redis运维(九)字符串(二)字符串过期时间_第1张图片

①  再谈过期时间

说明: 设置'key'的同时并且设置'过期'时间,是一个'原子'操作

redis运维(九)字符串(二)字符串过期时间_第2张图片

② ttl 检查过期时间

redis运维(九)字符串(二)字符串过期时间_第3张图片

redis运维(九)字符串(二)字符串过期时间_第4张图片

③  persist 删除过期时间

redis运维(九)字符串(二)字符串过期时间_第5张图片

④  redis 删除过期key的机制

redis运维(九)字符串(二)字符串过期时间_第6张图片

⑤  惰性删除

惰性'理解':

  让过期键删除机制触发呈现惰性,只有'用户调用这个key'时候,才会去检查是否过期,如果过期才会删除

核心:我'不主动'检查key是否过期,'被动的等着',只有'调用的时候'才会'检查'

redis运维(九)字符串(二)字符串过期时间_第7张图片

⑥  定期删除

redis运维(九)字符串(二)字符串过期时间_第8张图片

缺点:由于不主动删除,假如'100万个'过期key,如果'不调用',就'不会释放',所以需要配套第二种方案

redis运维(九)字符串(二)字符串过期时间_第9张图片

⑦  最大内存检查

'缘由':

 1、作为'内存'数据库,为了防止redis'占用过多的内存'对'其它的应用程序'造成'影响'

 2、可以在redis.conf文件中通过'设置maxmemory选项'对redis所能够使用的最大物理内存做限制

 3、并通过maxmemory_policy对redis占用内存'超过maxmemory之后'的行为做'定制'

redis运维(九)字符串(二)字符串过期时间_第10张图片

⑧  主流淘汰机制

redis运维(九)字符串(二)字符串过期时间_第11张图片

说明:

  1、前缀为'volatile-'和'allkeys-'的'区别'在于二者选择要'清除的键的字典'不同

  2、volatile-前缀的策略代表从redisDb中的'expire字典中'选择'键'进行'清除'

  3、allkeys-开头的策略代表'从dict字典'中选择'键'进行清除.

⑨  lru算法

redis运维(九)字符串(二)字符串过期时间_第12张图片

redis运维(九)字符串(二)字符串过期时间_第13张图片

最终: 快达到'maxmemory临界点',按照'lru算法',删除应该删除'数据3'

redis运维(九)字符串(二)字符串过期时间_第14张图片 

你可能感兴趣的:(redis,redis,缓存,过期策略)