2.10、Redis客户端执行带有参数的lua脚本,脚本文件的名称是:03.lua。
//当前redis 中只有name和age两个key,其他数据已经清空。
//当前所在目录
192.168.127.128:6379>keys *
1)"name"
2)"age"
192.168.127.128:6379>get name
"liulei"
192.168.127.128:6379>get age
"15"
//03.lua脚本代码如下:
local name=redis.call("get",KEYS[1])
local age=redis.call("get",KEYS[2])
if name=="LLL" then
redis.call("set",KEYS[1],ARGV[1])
redis.call("incr",KEYS[2])
end
//执行改脚本的命令,必须在Linux的命令行,不是在Redis的命令行
[root@linux ~]# /root/application/program/redis-tool/redis-cli -h 192.168.127.128 -p 6379 --eval /root/application/program/luascript/03.lua name age , patrickLiu
//执行脚本命令后
192.168.127.128:6379>keys *
1)"name"
2)"age"
192.168.127.128:6379>get name
"patrickLiu"
192.168.127.128:6379>get age
"16"
//说明带参数的执行Lua脚本成功
2.11、Redis客户端执行有参数lua,并返回lua的表类型。
//04.lua文件的源码
local b1=redis.call("hgetall",KEYS[1])
return b1
//代码很简单,话不多说
//清空当前
192.168.127.128:6379>flushdb
192.168.127.128:6379>keys *
(empty list or set)
192.168.127.128:6379>hmset myhash name zhangsan sex nan address hebeibaoding school laiyuanyizhong
OK
192.168.127.128:6379>hmget myhash name sex address school
1)"zhangsan"
2)"nan"
3)"hebeibaoding"
4)"laiyuanyizhong"
//我们通过redis客户端获取myhash的结果,进入到redis客户端的当前目录
[root@linux redis-tool]# redis-cli -h 192.168.127.128 -p 6379 --eval ../luascript/04.lua myhash
1)"name"
2)"zhangsan"
3)"sex"
4)"nan"
5)"address"
6)"hebeibaoding"
7)"school"
8)"laiyuanyizhong"
//成功获取myhash的列表
六、总结
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66087-4.html
醉了永远半张脸