Có, LUA script là giải pháp tốt nhất trong trường hợp EVALSHA gọi:
- Bạn đang làm việc không đồng bộ với redis. Vì vậy,
LUAgiúp bạn giảm số lượng mã và khả năng đọc mã. -
LUAtrường hợp nhanh hơn vì giảm giao tiếp mạng.
Tôi nghĩ bạn có thể viết mã của mình chỉ với 2 lệnh. Bạn không cần exists trong mã của bạn.
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"