利用rdbtools的redis-memory-for-key命令即可查看的单个key的详细信息

官方github如下:

https://github.com/sripathikrishnan/redis-rdb-tools

安装该工具需要有python的pip包管理,所以先安装环境:

https://www.runoob.com/w3cnote/python-pip-install-usage.html

安装完事之后,就可以使用redis-memory-for-key命令了,

我们首先试下查看类型为hash,hash键为2的redisObject所占用的大小

s-主机/ip,p-端口,d-database

bytes:占用的字节数

type:键类型

encoding:redisObject的编码格式,即内部实际存放数据的数据结构类型

Number of Elements:内部的元素数

然后再插入一个k,v。通过bytes相减得出2的占用内存多大。

我们知道redis 的hash在内部k,v数量<=512个时会采用ziplist压缩列表来存储数据,当元素数大于512个时则采用hashtable来存储,我们就可以做个试验,利用lua向hash中插入512个元素,

for i=1,512,1 do redis.call('hset', 2,i,i) end;return 1

然后我们再看下内部的大小及类型

然后我们再插入一个元素

这时再查看变化

发现redis-memory-for-key命令还是比较准确的。除了这个功能,rdbtools还提供了其他有趣的功能,感兴趣的可以去官方github上围观。。。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐