key不设置过期时间则在内存中一直存在,直到我们明确删除它。
无论RDB快照或者AOF日志,都会在内存和磁盘中反复操作,需要一定的内存空间。
有时过期缓存依旧存在,主要和缓存清理方式有关:
【资料图】
过度使用缓存,冷热数据不分;缓存过多或单个缓存value过大;缓存过期时间设置过长
分三类:
当写入新数据后的内存超过限定值时,写请求直接返回错误,只读请求可以正常执行,默认策略。
当写入新数据后的内存超过限定值时,从设置了过期时间的key中使用LRU算法淘汰最久没有使用过的key。
LRU(Least Recently Used)
当写入新数据后的内存超过限定值时,从设置了过期时间的key中使用LFU算法淘汰使用频率最低的key。
LFU(Least Frequently used)
当写入新数据后的内存超过限定值时,从设置了过期时间的key中随机淘汰key。
当写入新数据后的内存超过限定值时,从设置了过期时间的key中根据过期时间淘汰key,越快过期越早淘汰。
当写入新数据后的内存超过限定值时,从所有key中使用LRU算法(最近最少使用算法)淘汰最久没有使用过的key。
当写入新数据后的内存超过限定值时,从所有key中使用LFU算法(最少频率访问算法)淘汰使用频率最低的key。
当写入新数据后的内存超过限定值时,从所有key中随机淘汰key
#获取当前内存淘汰策略redis > config get maxmemory-policy#获取Redis能使用的最大内存大小:如果不设置最大内存大小或者设置为0,在64位操作系统#下不限制内存大小,在32位操作系统下最多使用3Gredis > config get maxmemory#通过命令设置淘汰策略redis > config set maxmemory-policy volatile-lru#设置Redis最大占用内存大小redis > config set maxmemory 2048mb
X 关闭
Copyright © 2015-2022 欧洲字画网版权所有 备案号:沪ICP备2022005074号-23 联系邮箱: 58 55 97 3@qq.com