2017-06-12 36 views
0

我需要使用兩個高速緩存實例來實現Michael解決方案,就像他在WhatIfRedisStopsWorkingHowDoIkeepMyAppRunning中解釋的一樣,但是使用web.config中的配置。CacheManger使用Redis多路複用器和Web.Config配置

最後我只有這行代碼

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

我不`噸找到如何訪問到ConnectionMultiplexer鉤我的事件或通過配置做到這一點...

是更多鈔票?

回答

0

有兩種方法可以通過應用程序/ web.config文件中CacheManager配置的Redis, 通過ConnectionString

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

Redis configuration section

<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部分。你必須自己處理...

+0

這不是我的意思。我已經在web.config中配置了CacheManager和Redis。我需要的是添加IConnectionMultiplexer來捕獲使用web.config配置的連接事件。 –

+0

@GerardoSeró啊,對不起,你必須自己實例化連接複用器,然後將它傳遞給redis的配置部分。請參閱更新 – MichaC

+0

就在您回答之前,我最終使用代碼進行配置。謝謝 –