Redis+LUA技术

1.使用Redis+Lua提升性能

原先代码:

 优化点:

Redis为什么要使用LUA

入门例子:

 以上脚本说明:

1. eval :为redis关键字

2.双引号的内容代表 lua脚本

3. 2代表 numbers参数的个数,即有多少个key

4.key1 和 key2 代表 KEYS[1] , KEYS[2] 的入参

5.agan1 ,agan2 是 ARGV[1], ARGV[2]的入参

性能优化:

将上述代码优化成lua脚本:

原代码:

lua 脚本:

 nil :特对于表示Object-C的除Class类型外的对象为NULL

~= :关系运算符号:不等于

将上述的lua脚本保存到 compareAndSet.lua中

执行lua脚本:

user:101 是redis要操作的key,在lua脚本中用KEYS[1]就能拿到

 " , " 逗号后面的agan101是lua的参数,lua脚本中用ARGV[1]就能拿到

注意:  " , " 逗号 两边的空格不能省略,否则会报错。

--eval:告诉redis-cli 要执行后面的lua脚本,compareAndSet.lua :脚本的目录文章

在springboot中执行lua

1.步骤1:编写lua文件,并存储于resources/lua目录下

目录:

 2.步骤2 :创建一个lua对象

创建DefaultRedisScript对象,用于存放lua脚本,把resources/lua/compareAndSet.lua脚本内容存放在DefaultRedisScript对象中

 3.步骤3:springboot执行lua脚本:

 

 放到service层也可以

2.Redis+Lua 实现黑客防刷攻击

 

lua脚本:

 将lua脚本存到resources目录下:

创建lua对象:同上

 springboot执行lua脚本:

光限制IP的请求数还不够,因为黑客一般手里有上百万台肉鸡的,IP地址大大的有,所以光限制IP还不够【但是能防住一般的攻击】,还需要其他的限制

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值