一 字符串过期时间
细节点: 注意'命令'的'入参'和'返回值'
① 再谈过期时间
说明: 设置'key'的同时并且设置'过期'时间,是一个'原子'操作
② ttl 检查过期时间
③ persist 删除过期时间
④ redis 删除过期key的机制
⑤ 惰性删除
惰性'理解':
让过期键删除机制触发呈现惰性,只有'用户调用这个key'时候,才会去检查是否过期,如果过期才会删除
核心:我'不主动'检查key是否过期,'被动的等着',只有'调用的时候'才会'检查'
⑥ 定期删除
缺点:由于不主动删除,假如'100万个'过期key,如果'不调用',就'不会释放',所以需要配套第二种方案
⑦ 最大内存检查
'缘由':
1、作为'内存'数据库,为了防止redis'占用过多的内存'对'其它的应用程序'造成'影响'
2、可以在redis.conf文件中通过'设置maxmemory选项'对redis所能够使用的最大物理内存做限制
3、并通过maxmemory_policy对redis占用内存'超过maxmemory之后'的行为做'定制'
⑧ 主流淘汰机制
说明:
1、前缀为'volatile-'和'allkeys-'的'区别'在于二者选择要'清除的键的字典'不同
2、volatile-前缀的策略代表从redisDb中的'expire字典中'选择'键'进行'清除'
3、allkeys-开头的策略代表'从dict字典'中选择'键'进行清除.
⑨ lru算法
最终: 快达到'maxmemory临界点',按照'lru算法',删除应该删除'数据3'