Redis-ERR未知命令“ EVAL”

时间:2018-07-31 09:58:44

标签: asp.net .net redis asp.net-core-2.0 stackexchange.redis

我正在尝试将Redis缓存(Microsoft.Extensions.Caching.Redis)与.net core 2.1配合使用,因此我遵循了本教程https://dotnetcoretutorials.com/2017/01/06/using-redis-cache-net-core/,现在的问题是当我尝试使用以下方法获取数据时_distributedCache.GetStringAsync(key)我收到此错误“ ERR未知命令'EVAL'”。我还搜索了这种错误,发现可能是由于Redis的版本较旧,但我使用的是最新版本的Microsoft.Extension.Caching.Redis(版本2.1.1)

这是我的代码:

         public async Task<string> RetrieveCache(string key)
        {
            var data = await _distributedCache.GetStringAsync(key);
            if (string.IsNullOrWhiteSpace(data))
                return "";

            return data;
        }

appsettings.json:

  "RedisServer": {
    "Server": "12.66.909.61:6379,password=pwd",
    "InstanceName": "Store.Toys"
  }

和startup.cs

 services.AddDistributedRedisCache(option =>
            {
                option.Configuration = Configuration["RedisServer:Server"];
                option.InstanceName = Configuration["RedisServer:InstanceName"];
            });

有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

服务器需要支持该功能;听起来像您定位的服务器缺少对此功能的支持。

答案 1 :(得分:0)

从Redis服务器2.6版开始,支持

根据文档的Eval命令。 您可以通过以下方式找出远程服务器上的当前版本:

$ telnet 12.66.909.61 6379
#and type 
info

或使用redis客户端-redis-cli -h 12.66.909.61 -p 6379 -a pwd信息 您将获得

# Server
redis_version:2.8.24
...

然后,您需要将服务器上的redis-server软件包升级到2.6