- 查看Redis 最大的占用内存
打开redis配置文件, 设置maxmemory参数,maxmemory 是bytes字节类型, 注意转换
- Redis默认内存多少可以用
注意: 在64bit系统下, maxmemory 设置为 0 表示不限制Redis内存使用
- 一般生产上如何配置
一般推荐Redis 设置内存为最大物理内存的四分之三
- 如何修改redis 内存配置
4.1 配置文件修改
4.2 通过命令修改
- 什么命令查看redis内存使用情况
info memory
config get maxmemory
6.如果redis 内存满了超过设置的最大值会怎么样
没有过期时间的 key 将redis的内存用满,为了避免这种情况,则引出redis的内存淘汰策略
7.先说说Redis 的三种key过期删除策略
7.1 立即删除
key 过期立即删除,对cpu不够友好, 用处理器性能换取存储空间 (即空间换时间)
7.2 惰性删除
开启憜性淘汰,lazyfree-lazy-eviction=yes
访问key时候判断key是否过期,对内存不够友好,用存储空间换取性能 (即时间换空间)
7.3 定期删除
定期删除策略每隔一段时间执行一次删除过期键操作并通过限制删除操作执行时长和频率来减少删除操作对CPU时间的影响。
周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度
特点1:CPU性能占用设置有峰值,检测频度可自定义设置
特点2:内存压力不是很大,长期占用内存的冷数据会被持续清理
总结:周期性抽查存储空间 (随机抽查,重点抽查)
|------------------------------------------------------------------------------------------------------------------------------------------------|
| redis默认每隔100ms检查是否有过期的key,有过期key则删除。 注意:redis不是每隔100ms将所有的key检查一次而是随机抽取进行检查( 如果每隔100ms,全部key进行检查,redis直接进去ICU)。因此,如果只采用定期删除策略,会导致很多key到时间没有删除。 |
定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁或者执行的时间太长,定期删除策略就会退化成立即删除策略,以至于将CPU时间过多地消耗在删除过期键上面。如果删除操作执行得太少,或者执行的时间太短,定期删除策略又会和惰性删除束略一样,出现浪费内存的情况。因此,如果采用定期删除策略的话,服务器必须根据情况,合理地设置删除操作的执行时长和执行频率。
如果定期删除是, 从来没有被抽到, 惰性删除也从来没有被点中使用过,也依然会有大量的过期key堆积在内存中,也会导致redis内存空间紧张或者很快耗尽
- redis 7 配置文件的内存淘汰策略
- lru 和 lfu 算法的区别是什么
- 细说8中淘汰策略
- 如何使用
不过在日常使用中避免bigkey 以及开启憜性淘汰,lazyfree-lazy-eviction=yes