DBAtlas · Atlas de operações de banco de dados

ERR Lua script attempted to access nonexistent global variable: Lua script attempted to access a nonexistent global variable (o script Lua tentou acessar uma variável global inexistente)

Redis

O que significa?

Um script Lua executado com EVAL/EVALSHA tentou acessar uma variável global não definida. Para proteger o ambiente de scripts, o Redis restringe a criação/leitura de variáveis globais e retorna esse acesso como erro.

Por que acontece?

Usar acidentalmente uma variável global em vez de local no script (esquecer a palavra-chave local); acessar um nome não definido por erro de digitação; ou tentar manter estado em uma variável global. O ambiente Lua isolado (sandbox) do Redis não permite isso.

Como resolver

Declare todas as variáveis do script com local: local x = ... Corrija erros de digitação; garanta que toda variável esteja definida antes do uso. Os scripts devem ser stateless; para estado persistente, use chaves do Redis (KEYS/redis.call), e não variáveis globais do Lua. Mantenha o script curto e determinístico.

Abrir no DBAtlas →

Mais entradas deste banco