redis.conf中的maxmemory参数

时间:2015-03-31 13:01:12

标签: redis

我正在尝试插入密钥 - "值"在redis。"价值"是我的应用程序插入redis时的X字节。我想知道在触发后要监视哪个参数" INFO"来自./redis-cli的命令检查X(或者可能是X + somevalue,以防redis填充一些数据)在redis中使用了多少字节。这样做是为了确定我需要的maxmemory(redis.conf)参数应用

我有一个主人和一个哨兵,我正在使用redis进行暂时存储。我已经尝试监视used_memory参数。但根据我得到的数据,似乎maxmemory与used_memory无关。

所以我正在考虑使用"调试对象Mykey"这给出了序列化的长度。究竟是这个长度,我在redis文档中找不到任何描述。

所以基本上有两个问题:

  1. maxmemory和used_memory是否相关,如果是,那么使用used_memory来计算插入的键值所占用的空间会有一些问题。

  2. "调试对象Mykey"中的序列化长度是什么?命令

1 个答案:

答案 0 :(得分:0)

  1. maxmemory配置指令规定了Redis应该允许用于用户数据的最大内存量。设置为0(默认值)时,只要底层操作系统允许,Redis就会分配内存。 used_memory命令的INFO值是调用命令时用户数据消耗的实际内存。两者之间的关系(只要maxmemory不为0)是used_memory< = maxmemory

  2. serializedlength输出的DEBUG OBJECT是序列化时该键下存储的值的长度(以字节为单位)。要获取实际的序列化值,可以使用DUMP命令。请注意,序列化长度可以准确衡量密钥使用的实际内存量,因为无数因素包括Redis对数据结构的编码和开销。

  3. 通常,为了获得maxmemory设置的估算值,请尝试存储几个代表您数据的100(例如1000)密钥,然后检查used_memory,除以值和然后将结果乘以具有安全边际的预期键的数量(例如,至少%10)。