2013-07-06 79 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

相关问题