【问题标题】:Any reason not to use Redis 32bit (as opposed to 64bit) except for the 4GB limit?除了 4GB 限制之外,还有什么理由不使用 Redis 32 位(相对于 64 位)?
【发布时间】:2013-07-07 16:11:47
【问题描述】:

我关心 mem 的一个盒子,我在上面运行了几个 redis 实例。因此,我正在考虑迁移到 Redis 32 位,因为这可以为我节省相当多的内存。

来自enter link description here

使用 32 位目标编译的 Redis 每个键使用更少的内存, 因为指针很小,但这样的实例将被限制为 4 GB 最大内存使用量。要将 Redis 编译为 32 位二进制文​​件,请使用 make 32位。 RDB 和 AOF 文件在 32 位和 64 位之间兼容 实例(当然在小端和大端之间)所以你可以 从 32 位切换到 64 位,或者相反,没有问题。

正如引用中所说,4GB 是 32 位 redis 实例的最大值,但我确保我不会遇到这个问题。我确实使用了多个 redis 实例,每个实例都低于 4GB 限制,但我想这不是问题(?)

还有什么其他原因,比如性能,我应该注意吗?

【问题讨论】:

    标签: ubuntu redis


    【解决方案1】:

    使用多个 32 位 Redis 实例通常效果很好。不过,您需要考虑一些缺点:

    • 大多数人运行 64 位版本,因此 32 位版本的测试和部署要少得多。它降低了它的可靠性,因为它增加了您遇到未检测到的错误的可能性。

    • 某些操作在 32 位中效率较低。例如 BITOP、BITCOUNT 操作在 64 位 CPU 上运行时应该更高效。

    • 很难设置内存限制。设置 maxmemory 参数很棘手,因为您还必须考虑的不仅仅是数据的大小(还包括内部通信缓冲区、主/从复制缓冲区、I/O 缓冲区等)。如果你过于乐观(即如果你将 maxmemory 设置得太接近 4 GB),当 Redis 内存饱和时你会随机崩溃。

    您可能还想阅读 Salvatore 所说的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2017-06-05
      • 2014-02-05
      • 2016-02-06
      • 2015-04-16
      • 2011-10-26
      • 2011-04-19
      相关资源
      最近更新 更多