我关注mem的一个盒子,其中包括我运行几个redis实例.因此,我正在考虑迁移到Redis 32bit,因为这样可以节省我相当多的内存.
使用32位目标编译的Redis每个键使用的内存要少得多,因为指针很小,但是这样的实例将限制为4 GB的最大内存使用量.要将Redis编译为32位二进制,请使用32位.RDB和AOF文件在32位和64位实例之间兼容(当然在小端和大端之间),因此您可以从32位切换到64位,相反,没有问题.
如引用中所述,4GB是32位redis实例的最大值,但我确定我没有达到此目的.我使用多个redis实例,每个实例都低于4GB限制,但我想这不是问题(?)
任何其他原因,比如性能可能,我应该注意什么?
使用多个32位Redis实例通常运行良好.但是您需要考虑一些缺点:
大多数人运行64位版本,因此32位版本的测试和部署要少得多.它使它不太可靠,因为它增加了你可能遇到的未检测到的bug.
某些操作在32位中效率较低.例如,BITOP,BITCOUNT操作在64位CPU上运行时应该更有效.
很难设置内存限制.设置maxmemory参数很棘手,因为您还必须考虑的不仅仅是数据的大小(还有内部通信缓冲区,主/从复制缓冲区,I/O缓冲区等等).如果你太乐观了(例如,如果你将maxmemory设置得太接近4 GB),当Redis内存饱和时你将会发生随机崩溃.
您也可以阅读Salvatore所说的内容:
https://groups.google.com/forum/#!topic/redis-db/ThCVJdMrqCE
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |