【问题标题】:Different hget results in different versions不同版本的hget结果不同
【发布时间】: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


【解决方案1】:

忘记反馈了。最大内存是问题所在。解决了

【讨论】:

  • 您能更好地解释一下您是如何解决这个问题的吗?因此,如果有人遇到同样的问题,可以查看详细的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 2020-09-13
相关资源
最近更新 更多