Ruby 长字符串上的Redis超时(低于最大512 MB)
这是使用 我在五秒钟后得到超时错误(默认超时)。当我将超时时间提高到10分钟时,它仍然失败。这种情况是否发生似乎还取决于过去对Ruby 长字符串上的Redis超时(低于最大512 MB),ruby,redis,Ruby,Redis,这是使用 我在五秒钟后得到超时错误(默认超时)。当我将超时时间提高到10分钟时,它仍然失败。这种情况是否发生似乎还取决于过去对client.set的调用,即使是在不同的键上 根据,字符串的最大大小为512 MB。这是否过于乐观 模糊地暗示Redis不适合处理长字符串。这是怎么回事,还是Ruby库中的问题?这不是Redis的限制,更可能是客户端设置。使用不同的客户端(Python的redis py)重复该示例不会重现该问题: In [1]: long_string = "x" * 9000000
client.set
的调用,即使是在不同的键上
根据,字符串的最大大小为512 MB。这是否过于乐观
模糊地暗示Redis不适合处理长字符串。这是怎么回事,还是Ruby库中的问题?这不是Redis的限制,更可能是客户端设置。使用不同的客户端(Python的redis py)重复该示例不会重现该问题:
In [1]: long_string = "x" * 9000000
In [2]: len(long_string) / (1024.0 ** 2)
Out[2]: 8.58306884765625
In [3]: import redis
In [4]: r = redis.StrictRedis()
In [5]: r.set('test', long_string)
Out[5]: True
In [6]: longer = long_string * 50
In [7]: r.set('test2', longer)
Out[7]: True
In [8]: r.strlen('test2')
Out[8]: 450000000
您的Redis是在同一台机器上运行还是在另一台服务器上运行?@Spickerman:我有一个本地Redis实例用于开发,还有一个Heroku Redis实例用于生产,我们在这两台机器上都可以看到。(虽然本地实例似乎能够在执行kaput之前处理更长的字符串)。很好,我将向他们报告错误。谢谢
In [1]: long_string = "x" * 9000000
In [2]: len(long_string) / (1024.0 ** 2)
Out[2]: 8.58306884765625
In [3]: import redis
In [4]: r = redis.StrictRedis()
In [5]: r.set('test', long_string)
Out[5]: True
In [6]: longer = long_string * 50
In [7]: r.set('test2', longer)
Out[7]: True
In [8]: r.strlen('test2')
Out[8]: 450000000