Redis - setex - 值不是整数或超出范围。

5
以下内容曾经正常工作:
redis_client.setex(key, expiry_in_sec, value_json)
但现在突然返回:
value不是整数或超出范围。
2个回答

8

问题出在不同的redis客户端之间。

当使用StrictRedis时,setex语法为:

setex key, expiry, value

而当使用Redis客户端时,setex语法为:

setex key, value, expiry

我们遇到的具体问题是有人更改了redis客户端。


解决方案也可以在这里找到:https://github.com/andymccurdy/redis-py/issues/260 - Amit Talmor

2

如果时间值(或过期时间)是float而不是int,Redis也会返回此错误。

在我的情况下,我在Python中使用Redis,我必须更改以下内容:

引起错误的原因

ex = expiration_delta.total_seconds()

已修复

ex = int(expiration_delta.total_seconds())

success = redis.set(name=redis_key, value=my_val, ex=ex, nx=True)

请注意,对于set()函数,使用ex参数将使其像setex函数一样工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接