sql >> Database >  >> NoSQL >> Redis

Waarom zijn er KEYS- en ARGV-arrays bij het aanroepen van Redis Lua-scripts?

Al uw vragen worden beantwoord op de EVAL pagina, maar aangezien je het vroeg...:

Wat is het verschil?

KEYS wordt gebruikt om sleutelnamen door te geven terwijl ARGS voor iets anders zou moeten zijn. Dit wordt niet precies afgedwongen (d.w.z. de meeste keren zou je het goed vinden om ze te mixen), maar het kan tot potentiële problemen leiden als het niet wordt opgevolgd.

Hoe behandelt Redis waarden in de KEYS-array?

De inhoud van KEYS worden gecontroleerd om te controleren of alle sleutels beschikbaar zijn voor de Redis-shard waarop het script wordt uitgevoerd. Dit mechanisme is aanwezig om het uitvoeren van scripts in een Redis-clusterimplementatie mogelijk te maken.

Wat als ik in mijn script sleutels moet gebruiken die dynamisch worden gegenereerd tijdens runtime?

Zie eerdere antwoorden - dat is mogelijk, maar u zou tegen de aanbevelingen ingaan. Uw script kan alleen veilig worden uitgevoerd op een zelfstandige Redis-instantie en aangezien dit gedrag niet is gespecificeerd, kan het in toekomstige releases kapot gaan.




  1. nodejs mongodb object-ID naar string

  2. Hoe verwijder ik alles in Redis?

  3. MongoDB - Sorteer de resultaten van een zoekopdracht

  4. mongodb-query zonder veldnaam