Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

script redis lua vs. chamadas únicas


Sim, LUA script é a melhor solução no caso de EVALSHA ligar:
  • Você está trabalhando com redis assíncrona. Então LUA ajuda a reduzir o número de código e a legibilidade do código.
  • LUA case é mais rápido porque reduz a comunicação da rede.

Eu acho que você pode escrever seu código com apenas 2 comandos. Você não precisa exists em seu 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"