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

Ben*_*Ben 4 c# atomicity redis stackexchange.redis

是否有一种简单的方法可以原子方式读取值,然后使用StackExchange c#驱动程序从Redis中删除它?
我在Redis中缓冲项目,当它们达到某个阈值时我会检索它们,但我也想刷新我的缓冲区.我需要提一下,我将项目存储在列表中,并通过"刷新缓冲区",我的意思是我要删除列表.
"关键":[项目清单]

the*_*000 7

您可以创建一个事务并以原子方式执行GET/DEL,如下所示:

var db = connectionMultiplexer.GetDatabase();
var tran = db.CreateTransaction();
var getResult = tran.StringGetAsync(key);
tran.KeyDeleteAsync(key);
tran.Execute();
var value = getResult.Result;
Run Code Online (Sandbox Code Playgroud)

这将向Redis发送以下命令:

MULTI
GET "key"
DEL "key"
EXEC
Run Code Online (Sandbox Code Playgroud)