【发布时间】:2014-04-15 07:56:57
【问题描述】:
我有以下设置:
- 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脚本有什么优缺点吗?
【问题讨论】:
-
您认为哪些利弊可能相关?速度?还有什么?