2017-07-23 136 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維護,所以這些數據結構將有額外的空間用於使用。