You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.Net Core 6集成Redis调用SetAsync时报Lua脚本参数数量错误

报错根因
  • 核心问题是本地Redis版本过低:你安装的3.0.504是微软早已停止维护的Windows归档旧版本,仅支持Redis 3.2及以下通信协议
  • 当前使用的Microsoft.Extensions.Caching.StackExchangeRedis包,缓存写入逻辑内置的Lua脚本适配Redis 4.0+参数规范,3.x版本Redis无法正确解析脚本传入的参数数量,直接抛出Lua脚本调用参数不匹配错误
  • 你贴出的AddAsync业务代码本身没有问题,同时配置绝对过期、滑动过期的写法不会触发该报错。
修复方案

二选一即可解决:

  • 升级本地Redis至4.0及以上版本:Windows环境弃用微软归档的3.x旧安装包,可通过WSL部署官方维护版Redis,或用Docker启动官方Redis镜像,版本适配后无需修改业务代码,SetAsync即可正常执行
  • 若暂时无法升级Redis,直接将项目内Microsoft.Extensions.Caching.StackExchangeRedis NuGet包降级到2.x系列版本,该版本内置Lua脚本兼容Redis 3.x协议,可直接适配你当前的本地Redis环境
补充说明

代码中SetAsync传入的token变量需要确保是方法签名中定义的有效CancellationToken参数,不要使用未声明的变量,不过这部分和本次遇到的Lua脚本报错无关联。

内容的提问来源于stack exchange,提问作者Neeraj Bhardwaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:51:27