我正在编写一些C#代码以写入Redis服务器。代码是多线程的,因此每当我想对某个key:value对进行更改时,都需要锁定“ key”
我正在使用StackExchange.Redis库。在该库中,接口IDatabase代表redis db,并提供读取/写入redis的方法。它有2种与锁相关的方法:bool LockTake(RedisKey键,RedisValue值,TimeSpan到期,CommandFlags标志= CommandFlags.None); &bool LockRelease(RedisKey键,RedisValue值,CommandFlags标志= CommandFlags.None);
但是,根据这篇文章,{T {3}}
表示LockTake()只能锁定不存在的密钥。但是我想锁定一个密钥,即使它已经创建,因为多个线程可能会尝试同时更新它。我该如何在C#中做到这一点?