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