一起写redis脚本

一、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脚本

从经典的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。
个人更倾向于第一种执行方式。

三、带参数的redis脚本

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,不确之处,望指教,也希望本文对大家有一点点帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值