以下内容曾经正常工作:
redis_client.setex(key, expiry_in_sec, value_json)
但现在突然返回:
value不是整数或超出范围。
redis_client.setex(key, expiry_in_sec, value_json)
但现在突然返回:
value不是整数或超出范围。
问题出在不同的redis客户端之间。
当使用StrictRedis
时,setex
语法为:
setex key, expiry, value
而当使用Redis
客户端时,setex
语法为:
setex key, value, expiry
我们遇到的具体问题是有人更改了redis客户端。
如果时间值(或过期时间)是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
函数一样工作。