當Redis
hashes我最後往往存儲相同的密鑰的99%的工作:Redis的哈希值:項名稱壓縮
HGETALL object:someID {
"id": "123",
"someSpecificKeysWithLongNames": "..."
}
如何Redis的存儲哈希?是否能夠減少鍵名所需的分配空間,還是應該使用短鍵來減少開銷?
HGETALL myobject {
"i": "123",
"s": "..."
}
當Redis
hashes我最後往往存儲相同的密鑰的99%的工作:Redis的哈希值:項名稱壓縮
HGETALL object:someID {
"id": "123",
"someSpecificKeysWithLongNames": "..."
}
如何Redis的存儲哈希?是否能夠減少鍵名所需的分配空間,還是應該使用短鍵來減少開銷?
HGETALL myobject {
"i": "123",
"s": "..."
}
Redis 2.2和更高版本能夠使用較少的內存用於多種數據類型(包括散列)。
退房這樣的解釋:http://redis.io/topics/memory-optimization
你也可以看看這裏的源代碼,看看它是如何工作的:
Redis的不以任何版本的壓縮鍵名,無論基礎數據結構。如果你的鑰匙是相同的,你將受益於使用較短的鑰匙。
我建議在實際重構之前,通過一些經驗性的計算來找出節省。根據你的例子,你至少要保存len(someSpecificKeysWithLongNames) - 每個散列的len(s)個字節。乘以你擁有或計劃擁有的哈希數量,然後做一個成本收益來看看這些節省是否值得這種痛苦。