@@ -12,26 +12,19 @@ public class RedisLockProvider : IDistributedLockProvider
1212 public RedisLockProvider ( IDatabase database ) => _database = database ;
1313
1414 public Task < bool > SetAsync ( string key , byte [ ] value , int ttlMs ) =>
15- _database . StringSetAsync ( key , value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
15+ _database . StringSetAsync ( ( RedisKey ) key , ( RedisValue ) value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
1616
1717 public bool Add ( string key , byte [ ] value , int ttlMs ) =>
18- _database . StringSet ( key , value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
18+ _database . LockTake ( ( RedisKey ) key , ( RedisValue ) value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
1919
2020 public Task < bool > AddAsync ( string key , byte [ ] value , int ttlMs ) =>
21- _database . StringSetAsync ( key , value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
21+ _database . LockTakeAsync ( ( RedisKey ) key , ( RedisValue ) value , TimeSpan . FromMilliseconds ( ttlMs ) ) ;
2222
23- public bool Delete ( string key , byte [ ] value ) =>
24- ( long ) _database . ScriptEvaluate ( @"if redis.call('GET', KEYS[1]) == ARGV[1] then
25- return redis.call('DEL', KEYS[1]);
26- end
27- return -1;" , new RedisKey [ ] { key } , new RedisValue [ ] { value } ) >= 0 ;
23+ public bool Delete ( string key , byte [ ] value ) => _database . LockRelease ( ( RedisKey ) key , ( RedisValue ) value ) ;
2824
29- public async Task < bool > DeleteAsync ( string key , byte [ ] value ) =>
30- ( long ) await _database . ScriptEvaluateAsync ( @"if redis.call('GET', KEYS[1]) == ARGV[1] then
31- return redis.call('DEL', KEYS[1]);
32- end
33- return -1;" , new RedisKey [ ] { key } , new RedisValue [ ] { value } ) >= 0 ;
25+ public Task < bool > DeleteAsync ( string key , byte [ ] value ) =>
26+ _database . LockReleaseAsync ( ( RedisKey ) key , ( RedisValue ) value ) ;
3427
3528 public bool CanRetry ( Exception ex ) => ex is RedisConnectionException ;
3629 }
37- }
30+ }
0 commit comments