Как реализовать авто-рефре sh с кешем Redis - PullRequest
0 голосов
/ 28 апреля 2020

MemoryCache имеет метод Set , который позволяет мне указать делегата, который вызывается перед удалением записи кэша из кэша с помощью параметра CacheItemPolicy.

Это можно использовать для автоматическое обновление sh кеша через равные промежутки времени без использования Hangfire или другого средства запуска задач.

Как я могу реализовать это в. NET с помощью StackExchange.Redis?

Мне не удалось найти какие-либо методы в справочнике команд Redis , которые бы подходили для моей цели и всех реализаций ObjectCache, которые я нашел в сети, бросаем NotSupportedException в их реализации:

https://github.com/justinfinch/Redis-Object-Cache/blob/master/src/RedisObjectCache/RedisCache.cs https://www.leadtools.com/help/sdk/v20/dh/to/azure-redis-cache-example.html https://github.com/Azure/aspnet-redis-providers/pull/72/commits/2930ede272fe09abf930208dfe935c602c1bb510

1 Ответ

1 голос
/ 28 апреля 2020

В Redis нет такой вещи.

Но Redis поддерживает уведомления пространства клавиш , что позволяет регистрировать событие Expired. Вы можете зарегистрировать клиента, который будет реагировать на такое событие и обновить sh кеш.

Другой вариант - использовать RedisGears и , зарегистрировать в expired - -> register(eventTypes=['exired']) событие, такое, что при каждом запуске события expire ваша функция, встроенная в Redis, будет обновлять sh данные.

...