使用StackExchange.Redis从Redis进行原子读取和删除

本文关键字:Redis 读取 删除 StackExchange 使用 | 更新日期: 2023-09-27 18:18:17

是否有一种简单的方法可以自动读取值,然后使用StackExchange c#驱动程序从Redis中删除它?
我在Redis中缓冲项目,当它们达到一定的阈值时,我检索它们,但我也想刷新我的缓冲区。我需要提到的是,我将项目存储在列表中,通过"刷新缓冲区",我的意思是我想删除列表。
"key": [list of items]

使用StackExchange.Redis从Redis进行原子读取和删除

您可以创建一个事务并自动执行GET/DEL操作,如下所示:

var db = connectionMultiplexer.GetDatabase();
var tran = db.CreateTransaction();
var getResult = tran.StringGetAsync(key);
tran.KeyDeleteAsync(key);
tran.Execute();
var value = getResult.Result;

这将发送以下命令到Redis:

MULTI
GET "key"
DEL "key"
EXEC