Мы используем клиент Stackexchange для подключения к Redis. У Redis есть метод IDatabase.KeyDeleteAsync, который возвращает логическое значение. В каких сценариях этот метод вернет false?
Клиент RedisCache StackExchange — IDatabase.KeyDeleteAsync — нужны сценарии, когда он возвращает false
Ответы (1)
Он вернет false, если ключ ранее не существовал (когда команда DEL возвращает 0).
Например:
var ctx = ConnectionMultiplexer.Connect("localhost:6379");
var db = ctx.GetDatabase();
db.StringSet("key", "value");
var @true = db.KeyDelete("key");
var @false = db.KeyDelete("key");
Вы можете проверить исходный код DemandZeroOrOneProcessor, где логика установки результата в true, когда команда возвращает 1, и false, когда команда возвращает 0.
person
thepirat000
schedule
17.04.2016
Спасибо. Любой другой сценарий, когда он возвращает false?
- person Pratik Mehta; 20.04.2016
Согласно redis.io/commands/del, сама команда Redis возвращает 0, если ключ не существует, который код библиотеки преобразуется в false github. com/StackExchange/StackExchange.Redis/blob/master/src/
- person stefann; 27.05.2020
Я проверил локально, и кажется, что вы всегда будете получать ложные результаты, если используется огонь и забвение.
await db.KeyDeleteAsync(key, CommandFlags.FireAndForget)
- person unsafePtr; 03.08.2020