使用lua脚本操作redis数据的一个demo, 只是为了入门, 以后还会深入.
--[[ set.lua, redis的set命令使用
redis: set key val
--]]
local key = KEYS[1]
local val = ARGV[1]
return redis.call('set', key, val)
--[[ set.lua, redis的get命令使用
redis: get key
--]]
local key = KEYS[1]
local val = redis.call("GET", key);
return val;
下面开两个终端(用127.0.0.1:6379> 和 $表示)实验
127.0.0.1:6379> get foo
(nil)
$ redis-cli --eval set.lua foo , bar
OK
127.0.0.1:6379> get foo
"bar"
$ redis-cli --eval get.lua foo
"bar"
$ redis-cli --eval get.lua fooooo
(nil)
可以看到, 可以用lua脚本操作redis数据。
注意: redis-cli --eval set.lua foo , bar
, foo和bar之间的逗号左右都有空格, 否则会报错, 不知道是为什么。
$ redis-cli --eval set.lua foo, bar
(error) ERR Error running script (call to f_6d6fd9fdaef84b87a7ce717673defd875d5c36b3): @user_script:4: @user_script: 4: Lua redis() command arguments must be strings or integers
以上是在win10中的bash做的实验, 可以下载luaforwindows及redis-windows.
欢迎补充指正。