Sì, LUA script è la soluzione migliore in caso di EVALSHA chiama:
- Stai lavorando con redis asincrono. Quindi
LUAti aiuta a ridurre il numero di codice e la leggibilità del codice. LUAcaso è 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"