sql >> Base de Datos >  >> NoSQL >> Redis

redis lua script frente a llamadas individuales

Sí, LUA script es la mejor solución en caso de EVALSHA llamar:

  • Estás trabajando con redis asíncrono. Así que LUA le ayuda a reducir la cantidad de código y la legibilidad del código.
  • LUA El caso es más rápido debido a la reducción de la comunicación de red.

Creo que puedes escribir tu código con solo 2 comandos. No es necesario exists en tu código.

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"