我们将 Node.JS 与 Redis 结合使用,并且遇到了数据丢失问题。我们有统计收集系统,所以我们必须收集处理到我们服务器的每个请求。对于高并发请求(平均 1000/秒),我们在 Redis 中存在数据丢失问题。
我们在 Node.JS 和 Redis 中记录了每个请求,问题是 Node.JS 显示的请求数量完全相同,Redis Monitor 调试的数量相同,但 Redis DBSIZE 向我们显示的值不正确。它总是比预期的少约 40%-50%。
我们的服务器配置是:
英特尔® 酷睿™ i7-920 24 GB DDR3 内存 从赫兹纳
我们正在运行 Debian Squeeze,这是我们的 sysctl:
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.core.somaxconn = 1280
fs.file-max = 50000
vm.overcommit_memory=1
我们的“平均负载”为 0.04,并且有大量可用内存(~20gb)。
任何有关此问题的帮助将不胜感激。