windows - Windows下【Redis 64Bit】能否用于生产环境?

标签 windows redis

我在我的开发环境中使用这个版本:Redis-64 .

而且我想知道这个版本是否适合生产环境?

如果能用,那么与linux下相比,需要注意什么?

最佳答案

从 3.0.3 版开始,windows 端口开发人员放弃了 dlmalloc,并开始使用 jemalloc 作为内存分配器。该端口实际上被考虑用于生产用途。 3.0.500 版本已被 MS 开发人员 ( see here ) 批准用于生产。

他们是如何绕过 unix 分支将数据保存到磁盘的,这真是太糟糕了。 Microsoft 开发人员将其称为 point-in-time heap snapshot。这是在生产中使用时最具争议的部分:

Redis under windows may need up to 3 times more memory than you need in linux version. This behavior is considered normal, because swap file in the windows can easily be up to 3 times larger than the actual amount of RAM.

我认为这只有在使用 Redis 作为 LRU 缓存或根本不将数据保存到磁盘时才可以接受。

如果你的Redis节点使用大量内存,至少Windows下的Redis是绝对容易受到影响的。例如 - 我们尝试在具有 512 GB 内存和 2 个 SSD 驱动器(RAID 0 中每个 256 GB)用作系统磁盘的服务器上使用 Windows 版 Redis(v2.8、v3.0.3、v3.0.5)。 Windows 交换文件没有任何限制。我们的测试模拟了我们的生产 - 使用 RDB 进行大量写入和保存,内存利用率约为 60-70%。这里有很多举手行为,然后该节点尝试保存快照 - 内存消耗跳跃,保存期间连接卡住。这种行为永远不会发生在同一硬件上的 undex linux。

关于windows - Windows下【Redis 64Bit】能否用于生产环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873212/

相关文章:

redis - 将 mget 与 redis-rs 一起使用时参数数量错误

linux - “glSwapInterval”未在此范围内声明

windows - 在 Windows 上从 Mingw32 编译 Node 时如何设置环境变量?

ruby - NoMethodError(未定义方法 `slice!' 为 nil :NilClass) from Redis call

redis - 我如何在 aws 弹性缓存 redis 中异步复制 redis 数据(主从配置)。

java - 需要一些 PUB/SUB Jedis 帮助 Bukkit

windows - 批处理文件 - 如何检查是否设置了 bin 文件夹的路径

c++ - 我可以使用哪种 C++ 软件 IDE 来面向 Windows、Linux 和 OSX?

python - msvcrt.getch() 每次都会检测到空格

php - 更改 ShareJS 中的默认文本