Redis第9章 案例

9案例

1. 手机验证码

需求:

①输入手机号,点击发送后随机生成6位数字码,2分钟有效

②输入验证码,点击验证,返回成功或失败

③每个手机号每天只能输入3次

2. 秒杀

2.1 实现思路

2.2 数据库连接池:

2.3. 使用ab进行压力测试

参数含义:

-c:模拟多少个客户端

-n:测试几次

-T:内容类型

-P:参数文件(注意参数文件的参数要以&符号结尾,注意携带绝对路径)

 

postarg文件:

2.4 超卖问题

解决:使用乐观锁解决超卖!

2.5 秒杀富余问题

2.5.1 压测脚本

2.5.2 如何解决

使用lua脚本解决!

2.5.3 Lua

    Lua 是一个小巧的脚本语言,Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,Lua并没有提供强大的库,一个完整的Lua解释器不过200k,所以Lua不适合作为开发独立应用程序的语言,而是作为嵌入式脚本语言

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

 

LUA脚本在Redis中的优势:

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

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

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

 


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)