Как я могу использовать StackExchange.Redis pub / sub вместе с IDistributedCache (Microsoft.Extensions.Caching.StackExchangeRedis) - PullRequest
0 голосов
/ 28 января 2020

Пакет Microsoft.Extensions.Caching.StackExchangeRedis предоставляет метод расширения AddStackExchangeRedisCache, который устанавливает StackExchange.Redis в качестве службы IDistributedCache в IServiceCollection.

. Под капотом создается экземпляр ConnectionMultiplexer, а окружающий RedisCache хранится как синглтон в ServiceCollection. Нет доступа к ConnectionMultiplexer, который я вижу, и IDistributedCache не предлагает функциональности pub / sub.

Так что вопрос: (как) я могу использовать pub / подфункция вместе с этим методом расширения / IDistributedCache?

На мой взгляд, самым чистым решением было бы создать отдельный ConnectionMultiplexer (и повторно использовать этот экземпляр) для сценария pub / sub и позволить методу расширения создавать (и повторно использовать) свой собственный. Однако это не рекомендуется в документах.
Я не знаком с внутренней работой мультиплексора, поэтому не знаю, каковы будут последствия использования второго экземпляра.

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

...