我正在编写一个Lua脚本以在Redis中执行。我正在使用如下所示的排序集:
Member: 96954_1_1557705600
Score: 1557705600
分数是unix时代的时间戳。
我想首先获得两个时间戳之间的结果,然后根据成员中的glob模式过滤那些结果。类似于MATCH *_1_*
。
我的脚本看起来像这样,但是当我尝试将Lua表传递给zscan时失败了:
local start_date = KEYS[1]
local end_date = KEYS[2]
local limited_by_date = redis.call('zrangebyscore','rooms', start_date, end_date)
return redis.call('zscan', unpack(limited_by_date), 'match *_1_*')
limited_by_date
正确包含我期望的值,但是现在如何使用zscan搜索它们呢?
答案 0 :(得分:2)
得到matplotlib.scale.ScaleBase
时,您可以自己迭代数组,并输出与模式匹配的项。
limited_by_date
无需使用local result = {}
for i, mem in ipairs(limited_by_date) do
if string.match(mem, ".+_1_.+") then result[#result + 1] = mem end
end
return result
命令。实际上,如果您使用ZSCAN
,则必须将ZSCAN
结果和ZSCAN
结果相交以获得最终答案。