1

我需要使用两个缓存实例来实现 Michael 解决方案,就像他在WhatIfRedisStopsWorkingHowDoIkeepMyAppRunning中解释的那样,但使​​用 web.config 中的配置。

最后我只有这行代码

var defaultConfig = ConfigurationBuilder.LoadConfiguration("defaultCache");

我找不到如何访问 ConnectionMultiplexer 以将我挂在事件中或通过配置来完成...

有可能吗?

4

1 回答 1

2

有两种方法可以通过CacheManager中的 app/web.config 配置 Redis ,通过ConnectionString

<connectionStrings>
    <add name="redisFromConnectionStrings" connectionString="127.0.0.1:6379,allowAdmin=True,connectTimeout=11,ssl=False,abortConnect=False,connectRetry=10" />
</connectionStrings>

Redis 配置部分

<cacheManager.Redis xmlns="http://cachemanager.michaco.net/schemas/RedisCfg.xsd">
<connections>
  <connection id="redisAppConfig" allowAdmin="true" password="" ssl="false" sslHost="" connectionTimeout="11" database="3">
    <endpoints>
      <endpoint host="127.0.0.1" port="6379" />
    </endpoints>
  </connection>
</connections>
</cacheManager.Redis>

:UPDATE: 目前没有选项可以访问 CacheManager 使用的连接多路复用器。但是您可以将现有的多路复用器传递给配置。

var defaultConfig = ConfigurationBuilder.LoadConfiguration("defaultCache");
var multiplexer = ConnectionMultiplexer.Connect(...);

defaultConfig = defaultConfig
            .Builder
            .WithRedisConfiguration("redisConfig", multiplexer )
            .Build();

当然,您必须自己实例化多路复用器,并且不能再使用 web/app 配置来配置 Redis 部分。你必须自己处理...

于 2017-06-13T07:46:25.910 回答