2013-07-06 19 views
6

我關心的是一個盒子,其中我運行了幾個redis實例。因此,我正在考慮遷移到Redis 32bit,因爲這應該可以節省我相當多的內存。任何不使用Redis 32bit(而不是64bit)的理由除了4GB的限制?

enter link description here

Redis的具有32位目標編譯使用每鍵少了很多存儲器, 因爲指針是小的,但這種情況下會被限制爲最大的內存使用情況的4 GB 。要將Redis編譯爲32位二進制文​​件,請使用32位的 。 RDB和AOF文件兼容32位和64位 實例(當然也包括小端和大端),因此您可以將 從32位切換到64位,或者相反,沒有問題。

正如在報價中所說的,4GB是32位redis實例的最大值,但我確保我不會打這個。我使用多個redis實例,每個都保持在4GB的限制以下,但我想這不是問題(?)

任何其他原因,如性能可能,我應該注意?

回答

5

使用多個32位Redis實例通常效果不錯。有幾個缺點需要考慮:

  • 大多數人運行64位版本,所以32位版本的測試和部署要少得多。它使它不太可靠,因爲它增加了可能你遇到了一個未被發現的錯誤。

  • 某些操作在32位中效率較低。例如,BITOP,BITCOUNT操作在64位CPU上運行時應該更高效。

  • 設置內存限制很困難。設置maxmemory參數非常棘手,因爲您還必須考慮更多的數據大小(還包括內部通信緩衝區,主/從複製緩衝區,I/O緩衝區等)。如果您太樂觀(即如果您將maxmemory設置得太接近4 GB),那麼當Redis內存飽和時,您將發生隨機崩潰。

您可能還需要讀什麼薩爾瓦託雷說一下吧:

https://groups.google.com/forum/#!topic/redis-db/ThCVJdMrqCE

相關問題