本文共 997 字,大约阅读时间需要 3 分钟。
删除策略和逐出算法是两个完全不同的东西,千万不要搞混淆了。
删除策略指的是,当key设置了过期时间,如果到了过期时间,那么采用什么策略来删除这个过期的key.
定时删除 | 节约内存 | 不分时段占用CPU资源,频度高 | 拿时间换空间 |
惰性删除 | 内存占用严重 | 延时执行,CPU利用率高 | 拿空间换时间 |
定期删除 | 内存定期随机清理 | 每秒话费固定的CPU资源维护内存 | 随机抽查,重点抽查 |
逐出算法指的是,当Redis的内存不够了,又有新的key放进来,那么我们就需要从已有的key种选择某些淘汰掉以腾出空间供新key使用。
检测易失数据(可能会过期的数据集server.db[i].expires)
LRU: Least Recently Used
LFU: Least Frequently Used
检测全库数据(所有数据集server.db[i].dict)
no-eviction: 禁止驱逐数据(Redis默认策略),会引发OOM(Out OfMemory)
在启动配置文件中:
maxmemory-policy volatile-lru
使用INFO命令输出监控信息,查询缓存hit和miss的次数,根据业务需求调优Redis配置。
转载地址:http://teuq.baihongyu.com/