从 Redis 服务器检索和删除单个调用中的密钥
Retrieving and deleting a key in single call from Redis server
对于一个用例,我想在一次调用中从 Redis 服务器检索时删除一个密钥,即密钥是一次性使用的。我正在使用生菜库连接到 redis 服务器。
redis 端是否有任何可用的特定配置或我可以使用的任何特定 lettuce API?我的示例代码如下所示。
RedisAsyncCommands<String, String> command = notificationConnection.async();
CompletionStage<String> result = command.get(id)
生菜:5.2.2
Redis: 5.0.8
谢谢,
阿肖克
没有一个命令可以同时执行这两项操作。您的库可能有一种方法可以同时执行这两项操作,但 Redis 将收到两个命令。如果你希望它是原子的,你要么用 multi
/exec
覆盖你的命令,要么使用 lua script
。下面是使用 redis 的交易示例。
127.0.0.1:6379> multi
OK
127.0.0.1:6379> get a
QUEUED
127.0.0.1:6379> del a
QUEUED
127.0.0.1:6379> exec
1) "b" -> result of get
2) (integer) 1 -> result of del
对于一个用例,我想在一次调用中从 Redis 服务器检索时删除一个密钥,即密钥是一次性使用的。我正在使用生菜库连接到 redis 服务器。
redis 端是否有任何可用的特定配置或我可以使用的任何特定 lettuce API?我的示例代码如下所示。
RedisAsyncCommands<String, String> command = notificationConnection.async();
CompletionStage<String> result = command.get(id)
生菜:5.2.2
Redis: 5.0.8
谢谢,
阿肖克
没有一个命令可以同时执行这两项操作。您的库可能有一种方法可以同时执行这两项操作,但 Redis 将收到两个命令。如果你希望它是原子的,你要么用 multi
/exec
覆盖你的命令,要么使用 lua script
。下面是使用 redis 的交易示例。
127.0.0.1:6379> multi
OK
127.0.0.1:6379> get a
QUEUED
127.0.0.1:6379> del a
QUEUED
127.0.0.1:6379> exec
1) "b" -> result of get
2) (integer) 1 -> result of del