Redis ejecuta la aplicación del proyecto real del script lua.

       Los blogs todavía se utilizan para escribir primero, el motivo de escribir este blog. Hace unos días, escribí el blog "Cómo usar la hora de llegada para ordenar con los mismos puntos en la tabla de clasificación usando redis". Usé este método para modificar la tabla de clasificación original. No hice esto en la tabla de clasificación anterior. Después de la modificación, es necesario suspender primero la tabla de clasificación, registrar las puntuaciones de la tabla de clasificación anterior y abrir la nueva tabla de clasificación después de que se emita el premio. Pero el planificador finalmente dijo que lo olvidé. Después de la actualización del jueves, las puntuaciones registradas por el método anterior existían y las puntuaciones registradas por el nuevo método también se registraron. La tabla de clasificación estaba estropeada. Tuve que suspender temporalmente la tabla de clasificación y espera a que lo arregle.

       El motivo de la confusión es la puntuación registrada en redis, la puntuación anterior es la puntuación real y la nueva puntuación es << 26 + tiempo. De esta manera, incluso si un jugador que es nuevo en la tabla de clasificación obtiene solo 1 punto, tendrá una puntuación más alta que el primer jugador anterior, lo cual es un desastre. El método de reparación es modificar la puntuación anterior en redis, usar la puntuación anterior << 26 + tiempo, escribir un script lua y dejar que redis se ejecute directamente.

       Hay dos formas de que redis ejecute Lua:

       1. Después de conectarse a redis, ingrese una cadena de cadenas en la línea de comando. Esta cadena de cadenas es una cadena lua conectada de acuerdo con ciertas reglas. No he estudiado este método en profundidad. Probablemente sea el siguiente:       

       2. Escriba el script lua que se ejecutará en un archivo y ejecútelo directamente. Yo uso el segundo método, y recomiendo el segundo método. El segundo método está claramente escrito por usted mismo, se puede ver claramente y es fácil de ejecutar.

       lua_2_redis.lua es el siguiente :

      

      El método de ejecución es el siguiente:

      redis-cli -h 127.0.0.1 -p 36001 -a xxxxxxx --eval lua_2_redis.lua >> ret.txt

      Escriba return en el script, devolverá el resultado que desea. Usé >> ret.txt aquí para redirigir y guardar la salida en el archivo ret.txt. El resultado de la ejecución muestra que se ha cambiado la puntuación correspondiente en redis:

      El archivo de salida ret.txt:

Nota: Debido a que Lua solo se admite en redis, algunos métodos en Lua no son compatibles, como os.time (), y las operaciones de bits no son compatibles. Así que escribí el tiempo calculado directamente encima del tiempo. Las operaciones de bits se reemplazan por multiplicaciones. El método no admitido debe encontrar otra forma de resolverlo.

 

Finalmente, tengo la sensación, no le temas a los problemas en el proyecto, el código está escrito por personas, siempre habrá una solución.

 

 

Supongo que te gusta

Origin blog.csdn.net/banfushen007/article/details/107298736
Recomendado
Clasificación