【发布时间】:2018-09-12 22:09:31
【问题描述】:
使用“Redis 服务器 v=3.2.1 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=bcc0f4a36956ba3e”,我确实从哈希中获得了更新的值并且工作正常。
使用“Redis 服务器 v=3.2.10 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=c8b45a0ec7dc67c6”和相同的配置文件基础 hget 返回始终为零。使用两个新参数:“list-max-ziplist-entries 512 list-max-ziplist-value 64" 我可以让 hget 再次工作,但是如果我在 redis master 中更改对象的值,3.2.10 版本将不会更新该值,而 3.2.1 会。
3.2.1 是我编译的,3.2.10 是 CentOS 编译的。
我没有在客户端或服务器日志中发现任何奇怪/错误/警告日志。我试图理解为什么我得到 nil 或不更新的值。我等了一段时间完全重新同步,但 3.2.10 继续显示 nil 或过时的值(我正在手动更改值以测试 3.2.10 是否正在获取更新)。
【问题讨论】:
-
如果我删除 /var/lib/redis/dump.rdb 并重新启动 redis 服务,它将完全重新同步更新对象,但不会再次更新。
-
我看到转储使用接近 1.8GB 的东西,最大内存为 1.2GB。可能是因为默认的 maxmemory 策略(我认为是 ttl),更新需要很长时间。我将 maxmemory 增加到大于 1.8GB 并将默认策略更改为 LRU。它开始起作用了。现在将对这个测试进行认证,我会在这里写下反馈。
标签: redis