Я установил службу кеширования Azure Redis с двумя кластерами. Я использую StackExchange.Redis для связи с кешем. Я использую строку подключения на основе SSL для подключения, как это предлагается на портале Azure.
Проблема:
У меня есть несколько экземпляров моей службы, которая подключается к Redis. Когда я удаляю ключ с одного узла, я хочу, чтобы он сохранялся в других экземплярах моей службы (для аннулирования локального кеша в памяти). Однако я заметил, что не все мои экземпляры службы получают ключевые события удаления. Я получаю события Pub / Sub во всех экземплярах, но кажется, что уведомления Keyspace не доставляются через все кластеры Redis. Я пробовал это с помощью __keyevent @ 0: __: del для моих тестовых целей, где я заметил эту проблему.
Инициализация моего ConnectionMultiplexer следующим образом:
ConnectionMultiplexer.Connect(connectionString)
Я прокрутил https://github.com/redis/redis/issues/2541 и выяснил, что уведомления Keyspace не доставляются между кластерами, в соответствии с проблемой - решение заключается в подключении клиентов ко всем мастерам, что в моем случае Redis настроено через Azure, и не так ясно, как указать все главные узлы (адреса).
Любая помощь будет оценена по достоинству. Заранее спасибо.
ОБНОВЛЕНИЕ: Nuget для клиента Redis: StackExchange.Redis.StrongName 1.2.6