刚开始玩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
;脚本和/或语法不正确吗?
答案 0 :(得分:3)
现在调用它的方式,它传递一个键名(k1
)和两个参数(2
,k2
)。
我想你想要它
EVAL "redis.call('set', KEYS[1], 'foo'); redis.call('set', KEYS[2],'bar'); return 1;" 2 k1 k2