相当于GET和TTL的SETEX

时间:2017-09-05 22:59:47

标签: redis redis-py

SETEX是一个有用的Redis命令,可以在单个原子操作中设置键的valueexpiry

是否存在以原子方式允许某人检索密钥valuettl的等效操作?我知道我也可以在管道中做到这一点,但我想问是否存在像SETEX那样优雅的东西。如果重要,我正在使用Redis 2.8.4。

2 个答案:

答案 0 :(得分:2)

AFAIK,没有这样的命令。但是,您可以将GETTTL包装到Lua脚本中,以便在单个原子调用中获取值和ttl。

此外,您不能通过管道实现这一目标。因为Redis 不会保证管道中的命令以原子方式运行。

答案 1 :(得分:2)

您可以使用MULTI/EXEC来确保某些命令在交易中。管道只需保存网络传输时间(rtt),因为它会批量发送请求并批量接收回复。

您可以参考Redis Transactionpipelining了解更多详情。