net6 使用 redis 實現 IDistributedCache


在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" />

 


免責聲明!

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



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