在net6的官方文檔中,如果需要使用redis作為分布式緩存,會建議使用RedisCache AddStackExchangeRedisCache ()來實現 ,根據官方文檔內容進行操作后,發生了如下異常
public void Test() { Cache.SetString(Key, "123"); } StackExchange.Redis.RedisServerException: ERR Error running script (call to f_3915ee22fda531a1d5661f2523d0443fd35ff0a4): @user_script:2: @user_script: 2: Wrong number of args calling Redis command From Lua script
看起來是執行腳本時候異常,先檢查了一下redis的連接,發現連接沒有問題,於是向bing國際版咨詢,發現github上有類似的issue
https://github.com/StackExchange/StackExchange.Redis/issues/1904
導致問題的原因是redis server 不同版本的執行腳本有區別,需要升級redis 服務至5.0.x。我使用的版本是redis 3.1.2 可是redis版本升級不是打工仔說升就能升的,只能尋找其他解決方案。
最終,發現使用.net 1.x中redis的解決方案可以適配
使用
<PackageReference Include="Microsoft.Extensions.Caching.Redis" Version="2.2.0" />
代替
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.0" />