使用Redis的Asp.Net Web API输出缓存不起作用

时间:2017-07-19 13:23:26

标签: asp.net web redis outputcache

  1. Redis正在Windows上运行(服务 - > Redis服务器)
  2. 已配置Web.config
  3. <caching>
     <outputCache defaultProvider="MyRedisOutputCache" enableOutputCache="true" enableFragmentCache="true" sendCacheControlHeader="true">
        <providers>
          <add name="MyRedisOutputCache" type="microsoft.web.redis.redisoutputcacheprovider" host="127.0.0.1" port="6379"accesskey="" ssl="false" />
        </providers>
      </outputCache>
    </caching>
    
    1. 输出缓存属性已添加到我的Web Api控制器

      [CacheOutput(ClientTimeSpan = 60,ServerTimeSpan = 60)]

    2. 缓存正在运行,但Redis不包含任何密钥

      redis 127.0.0.1:6379>钥匙* (空列表或集) redis 127.0.0.1:6379>

    3. 还尝试注册我的自定义输出缓存提供程序

      公共覆盖字符串GetOutputCacheProviderName(HttpContext context) {  返回“MyRedisOutputCache”; }

    4. 没有任何帮助:( 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我终于能够通过卸载已经过时的现有redis安装来解决问题https://github.com/rgl/redis

如果您从那里安装了redis,请继续阅读......

然后我从https://chocolatey.org/packages/redis-64安装了redis-64,效果非常好。

  • 通过chocolatey安装,在管理命令提示符或powershell上转到C:\ProgramData\chocolatey\lib\redis-64并运行以下命令将redis注册为windows服务

    redis-server --service-install redis.windows-service.conf --loglevel verbose

  • 然后创建一个文件夹Logs(如果没有此服务将无法启动)

  • 运行服务redis-server --service-start