我有以下设置:
- 2 种不同的数据结构:集合、字符串
- 它们在不同的命名空间
*:collections:*
中,*:resources:*
- 客户对此一无所知,我每次都尝试获取这两个名称空间。
- 基于
exists
我决定最终获得哪个数据结构。 - 所有对 redis 的调用都是异步完成的(vert.x redis-mod)
现在我必须决定是作为 lua 脚本还是作为单个命令执行。
我想出的lua脚本:
local path = KEYS[1]
local resourcesPrefix = ARGV[1]
local collectionsPrefix = ARGV[2]
if redis.call('exists',resourcesPrefix..path) == 1 then
return redis.call('get',resourcesPrefix..path)
elseif redis.call('exists',collectionsPrefix..path) == 1 then
return redis.call('smembers',collectionsPrefix..path)
else
return "notFound"
end
单个调用或 lua 脚本有什么优缺点吗?