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

redis lua script rispetto a chiamate singole

Sì, LUA script è la soluzione migliore in caso di EVALSHA chiama:

  • Stai lavorando con redis asincrono. Quindi LUA ti aiuta a ridurre il numero di codice e la leggibilità del codice.
  • LUA caso è più veloce perché riduce la comunicazione di rete.

Penso che tu possa scrivere il tuo codice con solo 2 comandi. Non hai bisogno di exists nel tuo codice.

local path = KEYS[1]
local resourcesPrefix = ARGV[1]
local collectionsPrefix = ARGV[2]
local ret

set ret = redis.call('get',resourcesPrefix..path)
if ret then
   return ret
end  
set ret = redis.call('smembers',collectionsPrefix..path)
if ret then
   return ret
end  

return "notFound"