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,
LUA
giúp bạn giảm số lượng mã và khả năng đọc mã. -
LUA
trườ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"