GET 和 TTL 的 SETEX 等价物
Equivalent of SETEX for GET and TTL
SETEX
是一个有用的 Redis 命令,通过它可以在单个原子操作中设置键的 value
和 expiry
。
是否有一个等效的操作可以使一个人以原子方式检索密钥的 value
和 ttl
?我知道我也可以在管道中做到这一点,但我想问的是是否存在像 SETEX
这样优雅的东西。如果重要的话,我正在使用 Redis 2.8.4。
据我所知,没有这样的命令。但是,您可以将 GET
和 TTL
包装到 Lua 脚本中,以在单个原子调用中同时获取值和 ttl。
此外,您不能通过管道实现这一点。因为 Redis 不 保证管道中的命令是 运行 原子的。
您可以使用 MULTI/EXEC
来确保某些命令在事务中。管道只是节省网络传输时间(rtt),因为它会批量发送请求并批量接收回复。
您可以参考Redis Transaction and pipelining了解更多详情。
SETEX
是一个有用的 Redis 命令,通过它可以在单个原子操作中设置键的 value
和 expiry
。
是否有一个等效的操作可以使一个人以原子方式检索密钥的 value
和 ttl
?我知道我也可以在管道中做到这一点,但我想问的是是否存在像 SETEX
这样优雅的东西。如果重要的话,我正在使用 Redis 2.8.4。
据我所知,没有这样的命令。但是,您可以将 GET
和 TTL
包装到 Lua 脚本中,以在单个原子调用中同时获取值和 ttl。
此外,您不能通过管道实现这一点。因为 Redis 不 保证管道中的命令是 运行 原子的。
您可以使用 MULTI/EXEC
来确保某些命令在事务中。管道只是节省网络传输时间(rtt),因为它会批量发送请求并批量接收回复。
您可以参考Redis Transaction and pipelining了解更多详情。