Ja, LUA
script är den bästa lösningen i fallet med EVALSHA
ring:
- Du arbetar med redis asynkron. Alltså
LUA
hjälper dig att minska antalet kod och kodläsbarhet. LUA
fallet är snabbare på grund av minskad nätverkskommunikation.
Jag tror att du kan skriva din kod med bara 2 kommandon. Du behöver inte exists
i din kod.
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"