Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-04 GMT+08:00

Otras restricciones del uso de comandos

En esta sección se describen las restricciones de algunos comandos de Redis.

Comando de KEYS

En el caso de una gran cantidad de datos almacenados en caché, la ejecución del comando KEYS puede bloquear la ejecución de otros comandos durante mucho tiempo u ocupar una memoria excepcionalmente grande. Por lo tanto, cuando ejecute el comando KEYS, describa el patrón exacto y no utilice keys * difusas. No utilice el comando KEYS en el entorno de producción. De lo contrario, el servicio que se ejecuta se verá afectado.

Comandos en el grupo de Server

  • Mientras se ejecutan comandos que tardan mucho en ejecutarse, como FLUSHALL, las instancias DCS pueden no responder a otros comandos y pueden cambiar al estado defectuoso. Después de que el comando termine de ejecutarse, la instancia volverá a la normalidad.
  • Cuando se ejecuta el comando FLUSHDB o FLUSHALL, la ejecución de otros comandos de servicio puede bloquearse durante mucho tiempo en el caso de una gran cantidad de datos almacenados en caché.

Comandos EVAL y EVALSHA

  • Cuando se ejecuta el comando EVAL o EVALSHA, se debe contener al menos una key en el parámetro de comando. De lo contrario, el mensaje de error, Se muestra "ERR eval/evalsha numkeys must be bigger than zero in redis cluster mode" ("ERR eval/evalsha numkeys debe ser mayor que cero en el modo redis cluster").
  • Cuando se ejecuta el comando EVAL o EVALSHA, una instancia de DCS Redis de clúster utiliza la primera key para calcular ranuras. Asegúrate de que las llaves que se van a utilizar en tu código estén en la misma ranura. Para obtener más información, visite el sitio web oficial de Redis.
  • Para el comando EVAL:
    • Aprenda las características del script Lua de Redis antes de ejecutar el comando EVAL. Para obtener más información, visite el sitio web oficial de Redis.
    • El tiempo de ejecución de un script de Lua es de 5 segundos. Deben evitarse las declaraciones que consumen mucho tiempo, como las declaraciones de sueño durante mucho tiempo y las declaraciones de bucle grande.
    • Al llamar a un script Lua, no utilice funciones aleatorias para especificar claves. De lo contrario, los resultados de la ejecución son inconsistentes en los nodos principal y en standby.

Otras restricciones

  • El límite de tiempo para ejecutar un comando Redis es de 15 segundos. Para evitar que otros servicios fallen, se activará un switchover principal/replicado una vez que se agote el tiempo de ejecución del comando.
  • Las instancias de clúster de DCS para Redis creadas antes del 10 de julio de 2018 deben actualizarse para que admitan los siguientes 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, and SCRIPT FLUSH