1、安装lua类库环境
1.1、yum install -y readline
1.2、yum install -y readline-devel

2、下载lua最新的版本安装
2.1、去官网下载lua,可以直接通过wget下载,地址如下:http://www.lua.org/download.html

2.2、通过ssh SSH Secure File Transfer Client工具,把软件包上传到Linux服务器上。目录是:/root/software/download/lua/
[root@linux~]# cd ./software/download/lua/
[root@linux lua]# tar zxvf lua-5.3.4.tar.gz
2.3、进入到已经解压的目录lua-5.3.4,准备安装文件。

[root@linux lua]# ls
[root@linux lua]# lua-5.3.4 lua-5.3.4.tar.gz
[root@linux lua]# cd lua-5.3.4
[root@linux lua-5.3.4]#
2.4、准备安装环境,使用make linux命令,当前也是需要gcc命令的支持,事先必须安装,安装gcc命令:yum install gcc。
[root@linux lua-5.3.4]# make linux

2.5、开始安装lua软件包,使用make install命令
[root@linux lua-5.3.4]# make install

2. 6、最后进行测试,进到Linux的命令行,然后输入lua命令,开始测试。
[root@linux lua-5.3.4]# lua
>print('lua')
lua
>print("lua")
lua 
2.7、按Ctrl+C退出lua命令模式。
>^C
[root@linux lua-5.3.4]#
2.8、lua脚本文件名必须以.lua后缀名,如果在Linux命令行执行lua脚本,直接lua 脚本名称。
[root@linux lua-5.3.4]# cd /root/application/program/ //执行文件都在这个目录里面
[root@linux program]# mkdir luascript //创建luaScript脚本目录,存放lua脚本文件
[root@linux program]# cd luascript
[root@linux luascript]# lua 01.lua //执行01.lua脚本文件
2.9、redis与lua脚本结合使用,如果在lua脚本里使用了 redis.call命令来操作Redis,执行lua脚步如下面:
//redis-cli和lua脚本的路径可以是相对路径,也可以是绝对路径
//以下代码就是通过绝对地址来执行
//绝对地址:
[root@linux ~]# /root/application/program/redis-tool/redis-cli -h 192.168.127.128 -p 6379 --eval /root/application/program/luascript/02.lua
//相对地址:
//当前目录
192.168.127.128:6379>pwd
[root@linux redis-tool]/root/application/program/redis-tool/
[root@linux redis-tool]# redis-cli -h 192.168.127.128 -p 6379 --eval /root/application/program/luascript/02.lua
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的列表
版权声明:本文为wangc_gogo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。