Java 在使用绝地武士的Redis中,单个钥匙占用的内存?

Java 在使用绝地武士的Redis中,单个钥匙占用的内存?,java,memory,redis,jedis,Java,Memory,Redis,Jedis,如何使用Jedis查找Redis中单个密钥占用的内存?Jedis.info(“内存”)仅提供Redis服务器使用的总内存。按照说明安装Redis rdb工具后,我们可以使用它查找密钥使用的内存 从运行redis中查找密钥的内存 redis-3.2.4 $ redis-memory-for-key -s localhost -p 6379 mystringkey Key "mystringkey" Bytes 88 Type string redis-3.2.4 $ redis-

如何使用Jedis查找Redis中单个密钥占用的内存?Jedis.info(“内存”)仅提供Redis服务器使用的总内存。

按照说明安装Redis rdb工具后,我们可以使用它查找密钥使用的内存

从运行redis中查找密钥的内存

redis-3.2.4 $ redis-memory-for-key -s localhost -p 6379 mystringkey
Key    "mystringkey"
Bytes    88
Type    string
redis-3.2.4 $ redis-memory-for-key -s localhost -p 6379 myhashkey
Key    "myhashkey"
Bytes    115
Type    hash
Encoding   ziplist
Number of Elements  2
Length of Largest Element 6
从rdb文件中查找密钥的内存

redis-3.2.4 $ rdb -c memory dump.rdb -k mystringkey
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element

0,string,"mystringkey",88,string,13,13
查找模式的所有键的内存

redis-3.2.4 $ rdb -c memory dump.rdb -k my.*
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element
0,list,"mylistkey",219,quicklist,7,6
0,sortedset,"mysortedsetkey",143,ziplist,6,5
0,hash,"myhashkey",115,ziplist,2,6
0,string,"mystringkey",88,string,13,13
0,string,"myhllkey",168,string,90,90

0,set,"mysetkey",452,hashtable,4,6
查找模式所有键的内存并导出到csv文件

redis-3.2.4 $ rdb -c memory dump.rdb -k my.* -f memory.csv
redis-3.2.4 $ head memory.csv 
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element
0,list,"mylistkey",219,quicklist,7,6
0,sortedset,"mysortedsetkey",143,ziplist,6,5
0,hash,"myhashkey",115,ziplist,2,6
0,string,"mystringkey",88,string,13,13
0,string,"myhllkey",168,string,90,90
0,set,"mysetkey",452,hashtable,4,6

从Redis v4开始,您可以调用获取特定键值的精确测量值

查看Jedis javadocs(),我找不到合适的包装器方法来调用它,但您应该能够使用
连接
类的
sendCommand()
方法来解决这个问题。

从我的回答中:

导入redis.clients.jedis.util.SafeEncoder;
// ... 绝地设置代码。。。
byteSize=(长)jedis.sendCommand(新协议命令(){
@凌驾
公共字节[]getRaw(){
返回SafeEncoder.encode(“内存”);
}}, 
SafeEncoder.encode(“用法”),
SafeEncoder.encode(键));

。。。请点击我的原始答案链接上面的更多信息,因为我不知道如果我只是把它完全粘贴在这里是否会标记我

很酷,但这需要某种外部工具,对吗?也许给它添加链接会很好。@ItamarHaber我的不好。添加了该实用程序的链接。@Anirudha如果对您有帮助,请接受这个答案。@Abhishek感谢您提供的详细信息,不过我正在寻找使用绝地武士的实现。如果你找到了方向上的解决方案,请告诉我。@AnirudhaSant使用绝地,解决方案: