sql >> Database teknologi >  >> NoSQL >> Redis

Hvorfor kan jeg ikke køre lua script i redis efter redis genstart?

Server-side Lua scripts gemmes eller gemmes ikke af Redis. De ligner ikke de lagrede procedurer, du kan finde i RDBMS.

Det er meningen, at klienterne skal levere teksten til scriptet i det mindste til den første udførelse af scriptet (dvs. brug EVAL til den første udførelse og EVALSHA til de næste kald). Alternativt kan du også bruge SCRIPT LOAD og SCRIPT EXISTS, det kan være mere praktisk afhængigt af situationen.

Dette er lidt mere komplekst at håndtere for applikationen, men der er fordele:det gør Redis-serveren statsløs med hensyn til Lua-scripting. Koden for applikationen (inklusive Lua-scripts) administreres på applikationssiden. Du behøver ikke at anvende noget på Redis-serveren, før du indlæser en ny version af applikationen (selvom Lua-scripts er ændret).

Denne egenskab er meget nyttig i forbindelse med en distribueret infrastruktur til at understøtte applikationsindlæsninger, eller sharding på klientsiden eller Redis-klynge.




  1. Laravel - Caching veltalende med hyppige opdateringer

  2. Beregn gennemsnittet af felter i indlejrede dokumenter/array

  3. Hvordan kan jeg forespørge mongodb ved hjælp af mongoid/skinner uden timeout?

  4. Systemet er ikke blevet startet med systemd som init system (PID 1). Kan ikke operere