我正在尝试将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"];
});
有什么帮助吗?
答案 0 :(得分:0)
服务器需要支持该功能;听起来像您定位的服务器缺少对此功能的支持。
答案 1 :(得分:0)
根据文档的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