Redis的内存监控、管理、优化-创新互联

Redis所有数据都是存放在内存中的,所以内存的监控及管理对redis来是是非常重要的。下面从内存监控、管理及优化三个方面来说说redis的内存。

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都定制网页设计,高端网页制作,对成都白乌鱼等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业seo优化排名优化,H5建站,响应式网站。

内存监控

redis为我们提供了info memory命令来查看内存使用。该命令的展示的数据非常多,下面只看其中比较重要的一些。

  • used_memory:1146648 (redis分配器分配的内存量)

  • used_memory_human:1.09M(以可读方式展示)

  • used_memory_rss:4358144 (redis总占用内存量)

  • used_memory_rss_human:4.16M(可读方式展示redis总占用内存量)

  • used_memory_peak:1229448 (userd_memory_peak峰值)

  • used_memory_peak_human:1.17M

  • used_memory_overhead:857036(缓冲区、backlog等占用的内存)

  • used_memory_startup:791384(启动redis消耗的内存)

  • used_memory_dataset:289612(redis数据所占用的内存)

  • used_memory_lua:37888(lua脚本消耗的内存)

  • used_memory_lua_human:37.00K(可读方式展现)

  • mem_fragmentation_ratio:4.02(内存碎片率,used_memory_rss / used_memory)

mem_fragmentation_ratio大于1时,表示有内存碎片,数值越低表示碎片率越严重。应用允许的情况下,可以重启redis来降低碎片率。当小于0时,就要非常注意了,表示内存不够用了,使用了部分swap。

内存管理

一般建议给redis设置内存上限,maxmory

修改方式有两种

  • 修改配置文件

  • 动态设置

下面展示动态设置

127.0.0.1:6379> config set maxmemory 1G
OK
127.0.0.1:6379> config rewrite
OK

设置大内存有两个方面的作用,首先可以限制redis占用的内存大小,防止超过物理内存大小。另外,当设置了大内存后,redis超过了大内存后,就可以触发内存回收策略(通常应用于缓存场景)

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来查看键的空闲时间,删除那些长时间没有访问的键。

此外,还可以缩减键值对象的方式来减低内存的占用量。

127.0.0.1:6379> scan 0
1) "272"
2)  1) "story:course:3915"
    2) "story:course:1681"
    3) "story:course:4982"
……

比如,上面的键可以改为:sy:cos:id来减低键的长度。对于,值的话,可以使用压缩技术来降低值的长度。(压缩会增加cpu的压力,可根据具体应用酌情应用)

以上就是Redis内存监控及管理的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:Redis的内存监控、管理、优化-创新互联
文章位置:http://azwzsj.com/article/eiipi.html