1.redis内存设置多少,默认是0,不限制
2.如何配置,修改内存大小
1) 查看最大占用内存
# maxmeory <bytes>
或者
config get maxmemory
2) 默认内存多少可以用: 64位系统下不限制,32位下最多3G
3) 如何配置: 默认总内存的3/4
4) 如何修改:
#配置文件
maxmeory 104857600 #100M
config set maxmemory 104857600
5) 查看内存使用情况
info memory
config get maxmemory
3.如果内存满了,怎么办
1) config set maxmemory 104857600
2) 设置过期时间
4.清理内存的方式
定期删除和惰性删除
5.缓存淘汰策略有哪些?
1) 立刻删除
2) 惰性删除
lazyfree-lazy-eviction yes
3) 定期删除
每100毫秒,随机抽取key删除
4) 以上三种总会有没被删除的,缓存淘汰策略
1.noeviction -> 不会驱逐任何key,即使内存达到上限也不进行置换,所有能引起内存增加的命令都会返回
2.allkeys-lru -> 对所有key使用LRU算法进行删除,优先删除掉最近最不经常使用的key
3.volatile-lru -> 对所有设置了过期的key使用LRU算法进行删除
4.allkeys-random -> 所有key随机删除
5.volatile-random -> 对所有设置了过期时间的key随机删除
6.volatile-ttl -> 删除马上要过期的key
7.allkeys-lfu -> 对所有key使用LFU算法进行删除
8.volatile-lfu -> 对所有设置了过期的key使用LFU算法进行删除
# LRU means Least Recently Used 最后一次使用到调用时间,最长时间未被使用
# LFU means Least Frequently Used 一定时间访问次数最少
6.LRU是什么,手写LRU
7.lru和lfu算法的区别