Ja, LUA script ist die beste Lösung im Fall von EVALSHA Aufruf:
- Sie arbeiten asynchron mit Redis. Also
LUAhilft Ihnen, die Anzahl der Codes und die Lesbarkeit des Codes zu reduzieren. LUAFall ist schneller, da die Netzwerkkommunikation reduziert wird.
Ich denke, Sie können Ihren Code mit nur 2 Befehlen schreiben. Sie brauchen exists nicht in Ihrem Code.
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"