NOSCRIPT: NOSCRIPT No matching script. Please use EVAL
RedisNe demek?
EVALSHA ile çağrılan Lua script'in SHA1 özeti sunucunun script önbelleğinde bulunamadı. Redis bu hash'e karşılık gelen bir script tanımıyor.
Neden olur?
Sunucunun yeniden başlatılması veya SCRIPT FLUSH ile script önbelleğinin temizlenmesi, script'in hiç yüklenmemiş olması, failover sonrası yeni düğümde önbelleğin boş olması.
Nasıl çözülür?
Script'i EVAL ile tam gövdesiyle çalıştırın (Redis otomatik önbelleğe alır) veya önce SCRIPT LOAD ile yükleyip dönen SHA'yı EVALSHA'da kullanın. Uygulamada NOSCRIPT hatasını yakalayıp EVALSHA yerine EVAL'a düşen (fallback) mantık uygulayın. Bu, birçok Redis istemci kütüphanesinde otomatik yapılır.
Aynı motorda diğer kayıtlar
- CROSSSLOTCROSSSLOT Keys in request don't hash to the same slot
- MOVEDMOVED slot ip:port (cluster redirect)
- ASKASK slot ip:port (cluster redirect)
- EXECABORTEXECABORT Transaction discarded because of previous errors
- NOPERMNOPERM this user has no permissions to run the command or access one of the keys
- ERR value is not an integer or out of rangeERR value is not an integer or out of range
- ERR value is not a valid floatERR value is not a valid float