¿Cómo bloquean los scripts de Lua todo el servidor Redis? [duplicar]

Dec 25 2020

Digamos que tengo una instancia de Redis ejecutándose y tengo dos clientes A y B conectados a ella. Ejecuto un script LUA de operaciones de solo lectura desde uno de ellos y desde el otro una operación hash de solo lectura utilizando la plantilla de Redis en Java. Dado que todas las operaciones en Redis están bloqueando, supongo que si el script LUA se emite primero, el otro cliente tiene que esperar hasta que finalice la operación del script Lua. De la misma manera, si la operación hash se emite primero, la operación del script Lua tiene que esperar hasta que finalice la operación hash. ¿Es esta una declaración válida? ¿Cómo maneja Redis las llamadas de múltiples fuentes si es de un solo hilo?

Respuestas

GuyKorland Dec 27 2020 at 02:29

Redis tiene un Even Loop interno que ejecuta un solo evento en el hilo principal cada vez para obtener más detalles, consulte:

  1. https://redis.io/topics/internals-rediseventlib
  2. http://nosqlgeek.blogspot.com/2019/10/so-what-exactly-is-event-loop.html