Redis内存监控及管理


本文摘自PHP中文网,作者齐天大圣,侵删。

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

内存监控

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

修改方式有两种

  • 修改配置文件

  • 动态设置

下面展示动态设置

1

2

3

4

127.0.0.1:6379> config set maxmemory 1G

OK

127.0.0.1:6379> config rewrite

OK

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

阅读剩余部分

相关阅读 >>

Redis数据类型及应用场景

Redis雪崩是什么

为什么Redis是单线程的

Redis如何修改默认密码

Redis一个实例能存多少个key

Redis集群如何分配哈希槽

使用Redis完成聊天室功能

windows下打开Redis后闪退怎么办

Redis 哨兵模式原理

Redis热点数据指什么

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...