用StackExchange.Redis客戶端連接阿里雲Redis服務遇到的問題


阿里雲推薦的Redis服務.NET客戶端是ServiceStack.Redis,但ServiceStack.Redis不支持異步,不支持.NET Core,於是嘗試使用StackExchange.RedisMicrosoft.Extensions.Caching.Redis用的也是StackExchange.Redis,於是直接使用Microsoft.Extensions.Caching.Redis。

測試代碼如下:

var options = new RedisCacheOptions
{
    Configuration = "實例ID.redis.rds.aliyuncs.com:6379,password=實例ID:密碼"
};
var cache = new RedisCache(options);
var cacheKey = "redis-test";
var cacheValue = Encoding.UTF8.GetBytes("Hello, World!");
await cache.SetAsync(cacheKey, cacheValue, new DistributedCacheEntryOptions());

代碼運行出錯:

> StackExchange.Redis.RedisServerException: ERR unknown command eval
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot
ification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Extensions.Caching.Redis.RedisCache.<SetAsync>d__13.MoveNext()

而訪問自己搭建的redis服務器則沒這個問題。

向阿里雲提交工單后獲知阿里雲redis服務目前不支持eval命令(更新:后來阿里雲redis支持了)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM