2017-07-23 103 views
0

我在redis上使用zsets实现了一种排序算法,我想知道每个密钥使用了多少空间。在redis中获取密钥的权重

是否有redis命令知道一个集有多大(以字节为单位)?

回答

0

在Redis v4中,您可以使用MEMORY USAGE命令来做到这一点。

+0

不,使用2.4 – Xhark

+0

这是古老的 - 很难说...你可以做的最好的事情是实验并获得实证结果。 –

0

我想你可以自己计算。在redis中,几乎所有内容都按字符串存储,除了整数。在zset中每个成员都有一个分数,如果分数是Int32,那么它是4个字节,float将是8个字节。并且该成员是一个字符串,则可以使用平均字符串长度来计算,例如假设平均长度为10.近似字节数为10.因此,一个成员约为14个字节。您可以使用zcount来获取zset的大小。然后你会得到一个空间。因为Zset由skip-list和hash table维护,所以这些数据结构将有额外的空间用于使用。