Пакет Microsoft.Extensions.Caching.StackExchangeRedis предоставляет метод расширения AddStackExchangeRedisCache
, который устанавливает StackExchange.Redis в качестве службы IDistributedCache
в IServiceCollection
.
. Под капотом создается экземпляр ConnectionMultiplexer
, а окружающий RedisCache
хранится как синглтон в ServiceCollection. Нет доступа к ConnectionMultiplexer
, который я вижу, и IDistributedCache
не предлагает функциональности pub / sub.
Так что вопрос: (как) я могу использовать pub / подфункция вместе с этим методом расширения / IDistributedCache
?
На мой взгляд, самым чистым решением было бы создать отдельный ConnectionMultiplexer
(и повторно использовать этот экземпляр) для сценария pub / sub и позволить методу расширения создавать (и повторно использовать) свой собственный. Однако это не рекомендуется в документах.
Я не знаком с внутренней работой мультиплексора, поэтому не знаю, каковы будут последствия использования второго экземпляра.
В качестве альтернативы я не вижу хорошего способа извлечь ConnectionMultiplexer
, созданный методом расширения, или способ внедрить его.