sql >> Database >  >> NoSQL >> Redis

Waarom kan ik lua-script niet in redis uitvoeren nadat redis opnieuw is opgestart?

Lua-scripts aan de serverzijde worden niet opgeslagen of opgeslagen door Redis. Ze lijken niet op de opgeslagen procedures die u kunt vinden in RDBMS.

De clients worden verondersteld de tekst van het script op zijn minst te leveren voor de eerste uitvoering van het script (d.w.z. gebruik EVAL voor de eerste uitvoering en EVALSHA voor de volgende aanroepen). Als alternatief kunt u ook SCRIPT LOAD en SCRIPT EXISTS gebruiken, dit kan handiger zijn, afhankelijk van de situatie.

Dit is iets ingewikkelder om te verwerken voor de toepassing, maar er zijn voordelen:het maakt de Redis-server stateloos met betrekking tot Lua-scripting. De code van de applicatie (inclusief Lua-scripts) wordt aan de applicatiezijde beheerd. U hoeft niets op de Redis-server toe te passen voordat u een nieuwe versie van de toepassing laadt (zelfs als de Lua-scripts zijn gewijzigd).

Deze eigenschap is erg handig in de context van een gedistribueerde infrastructuur om on-the-fly applicatiebelastingen, of client-side sharding of Redis-cluster te ondersteunen.




  1. Dubbele waarden vinden in een MongoDB-array

  2. Hadoop Partitioner – Leer de basisprincipes van MapReduce Partitioner

  3. Paginafouten in MongoDB oplossen

  4. Hoe handlers in RedMQ in te stellen van gebeurtenissen die in mijn domein zijn gegenereerd