Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-07 GMT+08:00

Outras restrições de uso de comandos

Esta seção descreve restrições em alguns comandos do Redis.

Comando KEYS

No caso de uma grande quantidade de dados armazenados em cache, executar o comando KEYS pode bloquear a execução de outros comandos por um longo tempo ou ocupar uma memória excepcionalmente grande. Portanto, ao executar o comando KEYS, descreva o padrão exato e não use chaves keys *. Não utilize o comando KEYS no ambiente de produção. Caso contrário, o serviço em execução poderá ser afetado.

Comandos no grupo de servidores

  • Ao executar comandos que levam muito tempo para serem executados, como FLUSHALL, as instâncias DCS podem não responder a outros comandos e podem mudar para o estado defeituoso. Após o término da execução do comando, a instância retornará ao normal.
  • Quando o comando FLUSHDB ou FLUSHALL é executado, a execução de outros comandos de serviço pode ser bloqueada por um longo tempo no caso de uma grande quantidade de dados em cache.

Comandos EVAL e EVALSHA

  • Quando o comando EVAL ou EVALSHA é executado, pelo menos uma chave deve estar contida no parâmetro de comando. Caso contrário, a mensagem de erro "ERR eval/evalsha numkeys deve ser maior que zero no modo de cluster redis" é exibido.
  • Quando o comando EVAL ou EVALSHA é executado, uma instância do DCS Redis de cluster usa a primeira chave para calcular slots. Certifique-se de que as chaves a serem operadas em seu código estejam no mesmo slot. Para mais detalhes, visite o site oficial do Redis.
  • Para o comando EVAL:
    • Aprenda os recursos de script Lua do Redis antes de executar o comando EVAL. Para mais detalhes, visite o site oficial do Redis.
    • O tempo limite de execução de um script Lua é de 5 segundos. Declarações demoradas, como sono de longa duração e instruções de loop grande, devem ser evitadas.
    • Ao chamar um script Lua, não use funções aleatórias para especificar chaves. Caso contrário, os resultados da execução são inconsistentes nos nós principal e stand-by.

Outras restrições

  • O limite de tempo para a execução de um comando do Redis é de 15 segundos. Para evitar que outros serviços falhem, um switchover principal/réplica será acionado após o tempo limite de execução do comando.
  • As instâncias do Redis do DCS de cluster criadas antes de 10 de julho de 2018 devem ser atualizadas para oferecer suporte aos seguintes comandos:

    SINTER, SDIFF, SUNION, PFCOUNT, PFMERGE, SINTERSTORE, SUNIONSTORE, SDIFFSTORE, SMOVE, ZUNIONSTORE, ZINTERSTORE, EVAL, EVALSHA, BITOP, RENAME, RENAMENX, RPOPLPUSH, MSETNX, SCRIPT LOAD, SCRIPT KILL, SCRIPT EXISTS e SCRIPT FLUSH