2012-08-01 51 views
1

我們希望將redis用於我們的某個數據存儲。我們很難「猜測」這家redis商店的規模,我們希望有人能提出正確的幫助。確定一個redis集的尺寸

此店鋪將專門使用Sorted Sets構建。每組將有一個密鑰,將是1和10^10之間的整數。我們目前擁有大約8M的密鑰,但我們預計「很快」就會達到3000萬。

每組將有不定數量的元素,但平均值爲17個元素,最大值爲135,最小值爲0.(讓我知道是否需要提供其他數字,如st。dev。) 。

有序集合中的元素將是字符串。現在我們希望它們是最短的字符串(5或6個字符?),但仍然可以避免碰撞。分數將是時間戳。我們目前大約有500次寫入/秒,但預計會增長10倍,而且我們目前有3000次讀取/秒,預計也會增長10倍。

我們也將使用「轉儲」策略而不是AOF。

我們的目標是使用一個(但很大)的Redis master store(也許還有一些奴隸店)。我們應該爲我們的redis實例分配哪些RAM?

回答

3

如果使用Redis 2.6,則可以從適用於zset的ziplist內存優化中受益,因爲大多數zsets的項目數量很少。

要計算您需要的內存,您可以使用少量與您的要求相對應的鍵填充實例並進行外插。對於這個用例,內存消耗將隨着密鑰的數量而線性增長。

我剛剛在我的系統上試過了,每100000個密鑰有30MB(按照您的規格),這導致30M密鑰需要9GB內存。您需要花費一些保證金,並在保存時間中包含一些COW內存空間。

如果您小心,12 GB服務器可能會工作。 一個16 GB的服務器將會很好。

+0

謝謝Didier!在此期間我已經完成了自己的測試,並且我大致具有相同的數字!非常感謝! – 2012-08-01 13:46:20