Очистка кеша Redis — «динамические» ключиC#

Место общения программистов C#
Ответить
Anonymous
 Очистка кеша Redis — «динамические» ключи

Сообщение Anonymous »

Мы используем Redis для кэширования в наших API .Net 8 (Azure Redis для некоторых, Enterprise Redis для других).
Определенные конечные точки API принимают параметры строки запроса, и эти параметры учитываются в имени ключа кэша.
Ниже приведены несколько примеров ключей кэша для наборов данных, возвращаемых одному и тому же пользователю (идентификатор 12345) из одной конечной точки Fruit, но с разными предоставленные фильтры/параметры:

Код: Выделить всё

FruitAPI:{12345}:Fruit:Yellow,MildlySweet,Potassium
FruitAPI:{12345}:Fruit:Yellow,Sour,VitaminC
Мы должны иметь возможность аннулировать все такие записи кэша. Единственный подход, который я могу придумать, — это выполнить поиск по шаблону для «фиксированной» части FruitAPI:{12345}:Fruit:*, а затем удалить каждый соответствующий ключ.
Мы используем одну из последних версий StackExchange.Redis, поэтому Keys() скорее всего выполнит СКАНИРОВАНИЕ; однако, как объясняется здесь, «сканирование пространства ключей Redis с помощью SCAN или KEYS неэффективно, и вам следует избегать необходимости делать это как часть рутинной логики приложения».
Каков будет тогда правильный подход? Кажется, что использование наборов не будет работать, поскольку у каждого полного ключа должен быть свой срок действия. Есть ли другие варианты?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... namic-keys
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»