Lua在Redis中入门应用

最近在完成一个功能需要用到Redis,然后要用Lua脚本语言来实现,来总结一下它的简单使用。

什么是Lua脚本语言?

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。引用于https://www.runoob.com/lua/lua-tutorial.html

其中Redis中内置了对Lua脚本语言的支持,Lua脚本在Redis上能起到什么作用,首先我们来学习下Redis的提交命令,假如有一个场景是Redis中存有一个变量,访问一次就自增。当然,Redis也有提供原子自增的方法,这里不考虑,只是举一个例子。

那么我们这个时候需要发送两个命令

但是这样可能不会达到我们预期的结果,因为Redis是基于Reactor模型,单线程接收Client发送的事件放入队列,然后事件分派处理器从队列中取出事件进行处理,所以单个命令是原子性,但在多个命令的时候却不能保证了,若另一个client发送修改该变量的时候,该命令可能在前者执行set命令之前处理,就会导致达不到预期的结果。

怎么解决呢,Redis有提供事务,通过MUTLI开始事务 EXEC进行提交事务,事务中的命令先存到一个缓存中,当输入EXEC后所有命令才会执行,其中这个事务跟Mysql中事务有点不一样,当某个命令执行失败之后,其他命令还是会执行,并且不会回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值