redis可以动态调整最大内存是非常好用的,当服务器内存不够用的情况下,需要增加内存,当服务器内存增大了,再动态调整redis的mammemory。
另外,redis的内存回收策略的配置(maxmemory-policy)有几个,其中有两个单词经常出现,LRU、LFU,意义分别如下:
最近最少使用的(Least Recently Used)
最近最不常用的(Least Frequently Used)
下面来看看所有的回收策略及意义:
noeviction:默认策略,不会删除任何键,当超过最大内存后,拒绝任何写入命令,只响应读命令
volatile-lru:根据lru算法删除过期的键,如果没有可删除的键,则回退到noeviction策略。
allkeys-lru:根据lru算法删除键,不管键是否过期,直到占用内存小于maxmeory为止。
allkeys-lfu:和上面含义一致,只不过是使用lfu算法来删除。
allkeys-random:当达到最大内存后,随机删除键。
volatile-ttl:删除快要过期的键。如果没有则回退到noeviction。
内存优化
上面说了redis回收策略,它属于被动删除策略,我们可以主动去删除长时间没有访问的键。可以通过使用scan遍历键,然后使用object ideltime来查看键的空闲时间,删除那些长时间没有访问的键。
此外,还可以缩减键值对象的方式来减低内存的占用量。
1 2 3 4 5 6 |
|
比如,上面的键可以改为:sy:cos:id来减低键的长度。对于,值的话,可以使用压缩技术来降低值的长度。(压缩会增加cpu的压力,可根据具体应用酌情应用)
以上就是Redis内存监控及管理的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《Redis》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。