一 最佳实践
① 铺垫
最佳实践:1、把redis操作'所需的key'通过'KEYS'进行参数传递2、其它的'lua脚本所需的参数'通过'ARGV'进行传递.
![]()
redis lua脚本原理
Redis Lua脚本的执行原理

② 删除指定的脚本缓存

③ redis集群模式下使用lua脚本注意事项
1、常见'报错'现象
![]()
CROSSSLOT Keys in request don't hash to the same slot

![]()
2、如何'排查'是不是redis'集群'模式

3、如何'保证'所有的key必须在'同一个slot'中?
hashTag


阿里云云数据库redis
二 lua脚本在redis的应用场景

④ 请求的限制访问次数


⑤ 模拟乘法
说明: redis 有'incrby' 这样的'自增'命令,但是'没有自乘'
代码

⑥ 自增主键id
1、'为什么'需要生成唯一id?

2、'代码'方式


⑦ 抢购场景
秒杀的业务逻辑

⑧ 延迟队列

⑨ 秒杀或抢红包
抢红包的代码

⑩ 分布式锁

python redis客户端使用lua脚本
cjson使用
Java使用缓存的lua脚本