【发布时间】:2014-03-09 13:03:35
【问题描述】:
我正在构建我的第一个 Redis 服务器端脚本(用于调试),但缺乏 Lua 经验让我陷入了困境。
基本上有一个 K/V 对的数据集(包含约 1000 个值),我想从中列出与模式匹配的所有 KEY。例如在 redis-cli 中:
> KEYS "carlos:*"
1) "carlos:1"
2) "carlos:2"
3) "carlos:3"
4) "carlos:4"
基于上述输出,我想通过执行 Lua 脚本返回这些键的总和。目前,我的sum.lua 上有以下内容@
local sum = 0
local matches = redis.call('KEYS', 'carlos:*')
for unpack(matches)
sum = sum + redis.call('GET', matches)
end
return sum
虽然上述脚本可能不正确,但即使尝试 redis.call('KEYS', 'carlos:*') 本身也会产生以下错误
root@carlos:~# redis-cli EVAL "$(cat sum.lua)"
(error) ERR 'eval' 命令的参数数量错误
我已经尝试了多次我的语法迭代,但都无济于事。有什么想法吗?
谢谢
【问题讨论】:
标签: database scripting compiler-errors lua redis