sql >> Database >  >> NoSQL >> Redis

Redis lua wanneer het echt te gebruiken?

Lua-scripts zijn bedoeld om te werken als MULTI commando's. Eigenlijk de meeste commando's die je zou ontwikkelen met MULTI commando's van een Redis-client kunnen in Lua worden geïmplementeerd. Dat wil zeggen, u kunt een aantal complexe bewerkingen in een script inkapselen en uw gegevenslaag voert de atomaire schrijfbewerking uit zonder u zorgen te maken over uw datamodelleringsstrategie op Redis.

Ik vind ze ook handig als je snelle maar complexe leesbewerkingen wilt uitvoeren. U wilt bijvoorbeeld objecten op volgorde krijgen. Objecten worden opgeslagen in een hekje terwijl de volgorde wordt gedefinieerd door een gesorteerde set-toets . Je krijgt een bereik van de zogenaamde gesorteerde set en je krijgt objecten in hash met behulp van hmget .

Het belangrijkste punt is dat Lua-scripts dingen moeten implementeren die zo snel mogelijk kunnen worden uitgevoerd, aangezien Redis andere bewerkingen blokkeert terwijl een Lua-script wordt uitgevoerd. Dat wil zeggen, u moet snelle onderbrekingen uitvoeren anders zullen uw algehele Redis-prestaties sterk afnemen.

Argumenten om Lua niet te gebruiken

Ik zou zeggen dat je ze moet gebruiken als je ze echt nodig hebt. Meestal worden clients ontwikkeld met behulp van programmeertalen op hoog niveau zoals C#, Java, JavaScript, Ruby... en bieden ze een betere ontwikkelingservaring:goede debuggers, IDE, code-aanvulling...

Samenvatting:je zou ze moeten gebruiken als je kunt bewijzen dat er een echt voordeel is (in prestaties) als je een deel van je domeinlogica omzet in Redis Lua-scripts.



  1. Upgraden naar de ClusterControl Enterprise Edition

  2. mongodb:Indexeringsstructuur met meerdere toetsen?

  3. Hoogwaardige MongoDB-clusters op Azure

  4. Bij het starten van flower krijg ik het volgende:dbm.error:db type is dbm.gnu, maar de module is niet beschikbaar