我无法使用Python redis模块设置过期时间

wyyhbhjk  于 7个月前  发布在  Redis
关注(0)|答案(1)|浏览(77)

站台:

  • Windows 11专业版x64 zh_CN
  • Python版本:3.9.12 MSC v.1916 64位(AMD 64)
  • Redis版本:5.0.14.1 x64
  • Python redis模块版本:4.5.1
    问题:无法使用Python redis模块设置过期时间(unix timestamp格式)
    Question:是Python redis模块的bug,还是我的redis服务器和Python redis模块不兼容?

方法1和方法2的代码
(* 注意 * 变量key是一个随机字符串)

redis_pool_session = redis.ConnectionPool(host=app_config.APP_REDIS_SERVER_HOST, port=app_config.APP_REDIS_SERVER_PORT, db=app_config.APP_REDIS_DB_SESSION_NO, password=app_config.APP_REDIS_SERVER_PASSWORD, decode_responses=True)
conn = redis.Redis(connection_pool=redis_pool_session)

字符串
方法一:

conn.set("JIE_DEMO_" + key, value, exat=1677298679)


方法二:

conn.set("JIE_DEMO_" + key, value)
conn.expireat("JIE_DEMO_" + key, 1677298679)


Redis-CLI:

EXPIREAT "JIE_DEMO_" + key 1677298679


错误代码:
对于方法#1:
redis.exceptions.ResponseError:语法错误
对于方法#2:
程序返回代码0,但实际上完全不工作。
如果在redis-task上查询其到期时间,TTL仍然是-1(永久)
Redis-CLI工作正常。

wvt8vs2t

wvt8vs2t1#

版本问题:历史从Redis 2.6.12版本开始:添加了EX、PX、NX和XX选项。从Redis 6.0.0版本开始:添加了KEEPTL选项。从Redis 6.2.0版本开始:添加了GET、EXAT和PXAT选项。从Redis 7.0.0版本开始:允许NX和GET选项一起使用。

相关问题