标签:redis lua redis脚本 lua与redis
要写redis的脚本,首先应该搭建好它的脚本环境。redis使用lua作为其脚本语言。所以搭建lua环境成了首要工作。
环境:centos7.0
redis:3.0.2
1.1 安装lua环境
[root@localhost lua]# curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
[root@localhost lua]# tar zxf lua-5.3.0.tar.gz
[root@localhost lua]# cd lua-5.3.0
[root@localhost lua]# make linux
执行到这里的时候,报了一个错,如图:
说缺少什么readline。缺少,就去安装它吧。
1.2 安装readlin
[root@localhost lua]# yum -y install gcc make ncurses-devel readline-devel
# 执行完以上操作后,继续以下命令
[root@localhost lua]# make linux
[root@localhost lua]# make install
# 使用lua命令,查看是否安装成
[root@localhost lua]# lua
看到如图所示,则表示安装成功了。
从经典的hello world开始我们的第一个redis脚本吧。
首先在某一个目录下建立一个lua文件,用于存放脚本。
2.1 lua脚本内容
local msg = ‘Hello, World!‘;
return msg;
该脚本就是将hello world赋值给msg,然后返回回来。
2.2 执行这个脚本
在执行之前,首先确保redis的服务已经开启。然后使用一下命令进行执行。
redis-cli –eval /root/lua/first.lua
命令解释:–eval告诉redis-cli读取并运行后面的Lua脚本,后面是存放的lua文件路径。
这是一种执行方式,还有另外一种执行方式。
redis-cli EVAL “$(cat first.lua)” 0
两种执行方式,都会得到一样的结果。第二种方式中,相当于再再redis的命令中执行了一条shell脚本。cat first.lua的意思就是获取该文件内容并显示出来。然后0表示使用了redis的键的数字号,该脚本没有使用故设置为0。
个人更倾向于第一种执行方式。
3.1 脚本内容
local link_id = redis.call("INCR", KEYS[1])
redis.call("HSET",KEYS[2],link_id,ARGV[1])
return link_id
脚本作用描述:redis通过incr命令将第一个传入的key值进行增加1,然后通过hset将第二个传入的键,以及通过incr得到的值作为字段,然后argv的第一个参数作为值,存入到hashtable中。并且在最后返回存入键的字段值。
3.2 执行脚本。
方式一:
redis-cli –eval /root/lua/second.lua links:counter links:urls , http://www.bnersoft.com/
方式二:
redis-cli eval “$(cat second.lua)” 2 links:counter links:urls http://www.bnersoft.com/
两种方式,任选一种,然后使用redis的自带客户端,可以清晰看到redis中新增加了两个键。
[root@localhost lua]# KEYS *
然后通过相关命令,可以查看其中的值,这里就不在进行演示了,大家可以自己试验一下。
PS:初学redis,不确之处,望指教,也希望本文对大家有一点点帮助。
标签:redis lua redis脚本 lua与redis
原文地址:http://blog.csdn.net/hel12he/article/details/46430963