Como os scripts Lua bloqueiam todo o servidor Redis? [duplicado]
Digamos que eu tenha uma instância do Redis em execução e dois clientes A e B conectados a ela. Eu executo um script LUA de operações somente leitura de um deles e do outro uma operação hash somente leitura usando o modelo Redis em Java. Como todas as operações no Redis estão bloqueando, presumo que, se o script LUA for executado primeiro, o outro cliente terá que esperar até que a operação do script Lua seja concluída. Da mesma forma, se a operação de hash for executada primeiro, a operação de script Lua deve esperar até que a operação de hash seja concluída. Esta é uma declaração válida? como o Redis lida com chamadas de várias fontes se for de thread único?
Respostas
O Redis tem um Even Loop interno que executa um único evento no thread principal a cada vez para obter mais detalhes, consulte:
- https://redis.io/topics/internals-rediseventlib
- http://nosqlgeek.blogspot.com/2019/10/so-what-exactly-is-event-loop.html