Ya, LUA script adalah solusi terbaik dalam kasus EVALSHA hubungi:
- Anda bekerja dengan redis asynchronous. Jadi
LUAmembantu Anda mengurangi jumlah kode dan keterbacaan kode. LUAcase lebih cepat karena mengurangi komunikasi jaringan.
Saya pikir Anda dapat menulis kode Anda hanya dengan 2 perintah. Anda tidak perlu exists dalam kode Anda.
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"