redis运维(二十二)redis 的扩展应用 lua(四)

一   最佳实践

①  铺垫

最佳实践:

  1、把redis操作'所需的key'通过'KEYS'进行参数传递

  2、其它的'lua脚本所需的参数'通过'ARGV'进行传递.

redis  lua脚本原理

Redis Lua脚本的执行原理

②  删除指定的脚本缓存

redis运维(二十二)redis 的扩展应用 lua(四)_第1张图片

③  redis集群模式下使用lua脚本注意事项

1、常见'报错'现象

CROSSSLOT Keys in request don't hash to the same slot

2、如何'排查'是不是redis'集群'模式

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

hashTag

redis运维(二十二)redis 的扩展应用 lua(四)_第2张图片

redis运维(二十二)redis 的扩展应用 lua(四)_第3张图片

阿里云云数据库redis

二   lua脚本在redis的应用场景

redis运维(二十二)redis 的扩展应用 lua(四)_第4张图片

④  请求的限制访问次数

redis运维(二十二)redis 的扩展应用 lua(四)_第5张图片

redis运维(二十二)redis 的扩展应用 lua(四)_第6张图片

⑤  模拟乘法

说明: redis 有'incrby' 这样的'自增'命令,但是'没有自乘'

redis运维(二十二)redis 的扩展应用 lua(四)_第7张图片代码

redis运维(二十二)redis 的扩展应用 lua(四)_第8张图片

⑥  自增主键id

1、'为什么'需要生成唯一id?

redis运维(二十二)redis 的扩展应用 lua(四)_第9张图片

2、'代码'方式

redis运维(二十二)redis 的扩展应用 lua(四)_第10张图片

redis运维(二十二)redis 的扩展应用 lua(四)_第11张图片

⑦  抢购场景

秒杀的业务逻辑

redis运维(二十二)redis 的扩展应用 lua(四)_第12张图片

⑧  延迟队列

redis运维(二十二)redis 的扩展应用 lua(四)_第13张图片

⑨  秒杀或抢红包

抢红包的代码

redis运维(二十二)redis 的扩展应用 lua(四)_第14张图片

⑩  分布式锁

redis运维(二十二)redis 的扩展应用 lua(四)_第15张图片

redis运维(二十二)redis 的扩展应用 lua(四)_第16张图片 

python redis客户端使用lua脚本

cjson使用

Java使用缓存的lua脚本

你可能感兴趣的:(redis,redis,运维,lua)