【问题标题】:Redis - setex - value is not an integer or out of rangeRedis - setex - 值不是整数或超出范围
【发布时间】:2018-05-31 02:30:33
【问题描述】:

以下操作正常:

redis_client.setex(key, expiry_in_sec, value_json)

现在它突然回来了:

值不是整数或超出范围

【问题讨论】:

    标签: redis


    【解决方案1】:

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

    使用StrictRedis 时,setex 语法为:

    setex key, expiry, value

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

    setex key, value, expiry

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

    【讨论】:

    【解决方案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 一样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2020-04-28
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      相关资源
      最近更新 更多