黑猴子的家:LUA脚本(Redis 秒杀案例)

Code -> GigHub

https://github.com/liufengji/redis_seckill.git

1、概念

http://www.lua.org/download.html

9193428-18015b1e4026716d.png

9193428-7cb8552a8dbde37e.png

9193428-bde660e6a4a11927.png

Lua是一个小巧的脚本语言,用标准C语言编写并以源代码形式开放,因此Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能,Lua并没有提供强大的库,一个完整的Lua解释器不过200k,所以Lua不适合作为开发独立应用程序的语言,而是作为嵌入式脚本语言。

Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。

很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽争霸地图、魔兽世界、博德之门、愤怒的小鸟等众多游戏插件或外挂。

2、LUA脚本在Redis中的优势

seckill.lua

(1)将复杂的或者多步的redis操作,写为一个脚本,一次提交给redis执行,减少反复连接redis的次数。提升性能。

(2)LUA脚本是类似redis事务,有一定的原子性,不会被其他命令插队,可以完成一些redis事务性的操作。

但是注意redis的lua脚本功能,只有在2.6以上的版本才可以使用。

(3)利用lua脚本淘汰用户,解决超卖问题。

(4)redis 2.6版本以后,通过lua脚本解决争抢问题,实际上是redis 利用其单线程的特性,用任务队列的方式解决多任务并发问题。

3、利用lua脚本淘汰用户,解决超卖问题。

redis 2.6版本以后,通过lua脚本解决争抢问题,实际上是redis 利用其单线程的特性,用任务队列的方式解决多任务并发问题

 

9193428-9693ff15d74f331c.png

Nginx 支持 Lua ,Redis支持Lua,面对高并发可以选择Nginx+Lua+redis,替代掉Tomcat+mysql
电商 最热访问页面,很多都是使用Nginx+Lua+redis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值