DBAtlas · 数据库运维图谱

NOSCRIPT: NOSCRIPT No matching script. Please use EVAL(没有匹配的脚本。请使用 EVAL)

Redis

含义

在服务器的脚本缓存中找不到用 EVALSHA 调用的 Lua 脚本的 SHA1 摘要。Redis 不知道与该哈希对应的脚本。

原因

服务器已重启或脚本缓存被 SCRIPT FLUSH 清除、脚本从未加载过,或故障转移后新节点上的缓存为空。

解决方法

通过 EVAL 以完整脚本体运行(Redis 会自动缓存),或先用 SCRIPT LOAD 加载,再在 EVALSHA 中使用返回的 SHA。在应用中捕获 NOSCRIPT 错误,实现从 EVALSHA 回退到 EVAL 的逻辑。许多 Redis 客户端库会自动完成这一点。

在 DBAtlas 中打开 →

同一数据库的其他条目