GET 和 TTL 的 SETEX 等价物

Equivalent of SETEX for GET and TTL

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

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

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

此外,您不能通过管道实现这一点。因为 Redis 保证管道中的命令是 运行 原子的。

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

您可以参考Redis Transaction and pipelining了解更多详情。