Можем ли мы установить срок действия для всех ключей в Azure Redis Cache? - PullRequest
1 голос
/ 10 мая 2019

Чтобы установить срок действия ключа во время его создания, мы можем использовать StringSetAsync и передать значение временной метки для срока действия.Однако это невозможно, если мы хотим установить несколько пар ключ-значение одновременно -

Task<bool> StringSetAsync(KeyValuePair<RedisKey, RedisValue>[] values, When when = When.Always, CommandFlags flags = CommandFlags.None);

Task<bool> StringSetAsync(RedisKey key, RedisValue value, TimeSpan? expiry = default(TimeSpan?), When when = When.Always, CommandFlags flags = CommandFlags.None);

Можно ли установить срок действия для всех ключей на уровне кэша где-нибудь на лазури?Я не смог найти ответ ни в одной документации.Я хочу установить kvps сразу, чтобы уменьшить количество обращений в кэш Azure Redis.Я также не мог найти никакого верхнего предела этому.Сколько ключей в максимуме мы можем получить и установить за один звонок?

1 Ответ

0 голосов
/ 13 мая 2019

Согласно списку Redis Commands или Related commands (правая часть страницы) о EXPIRE, команда не может завершить действие всех ключей ввремя.

enter image description here

Таким образом, единственный способ состоит в том, что вам нужно выполнить цикл для запуска команды EXPIRE <key> <seconds> для списка из команды KEYS *.Между тем, учитывая уменьшение количества запросов, вы можете попробовать обратиться к теме Scripting из StackExchange.Redis официальных документов, чтобы сгенерировать Lua-скрипт для всех ключей с истечением срока действия и один раз запросить срок действия всех командEVAL.

...