Ja, LUA script er den bedste løsning i tilfælde af EVALSHA ring:
- Du arbejder med redis asynkron. Så
LUAhjælper dig med at reducere antallet af kode og kodelæsbarhed. LUAsagen er hurtigere på grund af reduceret netværkskommunikation.
Jeg tror, du kan skrive din kode med kun 2 kommandoer. Du behøver ikke exists i din kode.
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"