Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis Lua-Skript vs. Einzelanrufe

Ja, LUA script ist die beste Lösung im Fall von EVALSHA Aufruf:

  • Sie arbeiten asynchron mit Redis. Also LUA hilft Ihnen, die Anzahl der Codes und die Lesbarkeit des Codes zu reduzieren.
  • LUA Fall 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"