用Redis缓存替换Windows Azure缓存?

时间:2016-02-22 17:35:54

标签: asp.net azure caching redis stackexchange.redis

我目前正在使用Windows Azure Cache进行缓存,但我想使用Redis缓存。我尝试从我的项目中删除Windows Azure缓存包并添加了Redis缓存包,并进行了相应的配置。

然而,这似乎不起作用并且给了我很多构建错误,因为我相信它仍然在寻找Windows Azure Cache。

我如何解决此问题并成功切换到Redis缓存?

还想知道我应该从我的WebRole的Web.config文件中删除此部分吗?

  <dataCacheClients>
    <dataCacheClient name="default">

  <!--To use the Windows Azure Cache Service, set identifier to be the endpoint of the cache cluster -->
  <autoDiscover isEnabled="true" identifier="testingabc.cache.windows.net" />
  <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  <!--Use this section to specify security settings for connecting to your cache. This section is not required if your cache is hosted on a role that is a part of your cloud service. -->
  <securityProperties mode="Message" sslEnabled="true">
    <messageSecurity authorizationInfo="MyAuthInfo" />
  </securityProperties>
</dataCacheClient>

2 个答案:

答案 0 :(得分:0)

对于此特定错误:The Error is: "CloudServices64:Cannot find the file named 'approot\bin\Microsoft.WindowsAzure.caching\ClientPerfCounterInstaller.exe' for startup task Microsoft.WindowsAzure.caching\ClientPerfCounterInstaller.exe of myprojWebRole,请尝试通过进入您的网络角色项目属性的缓存标签来禁用角色内缓存:

enter image description here

答案 1 :(得分:0)

您可能无法理解切换到redis所需的一些内容。您正在使用的旧Windows Azure缓存解决方案的工作方式是将缓存作为Windows Azure“插件”运行在您的工作人员/ Web角色上。 (然后使用Azure缓存客户端库访问该缓存。)redis没有相应的插件。要切换到redis,您需要:

1)停止使用Azure缓存客户端库并切换到例如StackExchange.Redis作为客户端库 - 无论您使用哪种redis库,它都是一个完全不同的API,您需要更改执行缓存操作的C#代码。

2)关闭插件(即“启用缓存”复选框),并删除角色定义中的所有相关启动任务/工件。然后,您将不再在您的Web /辅助角色本地运行缓存。

一旦您正确卸载了插件和客户端库,就不应再看到有关ClientPerfCounterInstaller的错误。

3)单独配置Azure Redis缓存作为您的缓存(通过门户网站,powershell等),以便您有一个连接缓存,并使用连接字符串配置您的应用程序。