如何在lua表上zscan生成脚本

时间:2018-11-24 02:47:44

标签: redis lua

我正在编写一个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搜索它们呢?

1 个答案:

答案 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结果相交以获得最终答案。