具有多个操作的Lua脚本无法在redis中运行

时间:2013-08-09 19:04:39

标签: lua redis

刚开始玩redis中的lua脚本,我想在脚本中执行以下命令:

set k1 foo
set k2 bar

试过..

> EVAL "redis.call('set', KEYS[1],'foo'); redis.call('set',KEYS[2],'bar'); return 1;" 1 k1 2 k2


 > script load "redis.call('set', KEYS[1],'foo'); redis.call('set',KEYS[2],'bar'); return 1;"
 > "bb031c00b6ab2508bbf182dadd5c9bf1675cce56"
 > EVALSHA "bb031c00b6ab2508bbf182dadd5c9bf1675cce56" 1 k1 2 k2

结果

get k1
1) "foo"

get k2
(nil)

为什么没有设置k2;脚本和/或语法不正确吗?

1 个答案:

答案 0 :(得分:3)

现在调用它的方式,它传递一个键名(k1)和两个参数(2k2)。

我想你想要它

EVAL "redis.call('set', KEYS[1], 'foo'); redis.call('set', KEYS[2],'bar'); return 1;" 2 k1 k2