OpenResty-lua-cache-lua-redis-sub
2022/2/28 2:21:30
本文主要是介绍OpenResty-lua-cache-lua-redis-sub,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
对于一个 JAVAER来说,肯定都搞过并发吧,对于高并发而言,目前大家都知道的几种解决方案,如下几种
1:缓存
降低DB的访问频率,比如说redis等
2:多线程
提升task处理速度
3:加机器
通过负载均衡–治标不治本,土豪随意
4:消息队列
削峰填谷
接下来我要给大家介绍一款开源的,基于nginx做了增强的,由国人研发的,很多大厂使用的 openResty,可以使用其中的一些模块去做实现相应的需求,比如说缓存,访问redis,mysql 等等
实现部分
1:安装
自行跳转 http://openresty.org/cn/installation.html
2:lua-cache
通过lua脚本去访问缓存
1:修改nginx.conf
nginx.conf
2:增加一个testCache.lua文件
testCache.lua
3:测试一下,访问地址 localhost/testCache 测试结果,和预期一样
测试结果
然后前端请求就一直访问这个接口,那么服务器端的接口的压力自然就小了,多余的一些性能可以去做其他的任务,性能可以得到一部分提升。
听起来也是挺不错的,那么问题来了,这个缓存我什么时候更新呢?相比需要一个时间来触发这个缓存的更新,接下来使用 redis-sub 来解决这个问题
3:lua-redis-sub
再次声明一下哈,openresty是支持各种lua脚本的,而lua脚本是可以提供了访问redis/redis-cluster的接口的,在这里我们使用redis的订阅发布去做
1:编辑订阅访问接口,访问地址 localhost/sub
2:编写sub.lua
sub.lua
3:nginx -s reload 重启 openresty (我这里是windows),访问地址 localhost/sub,发现一直在转圈,这个时候就是 reply 起了作用
阻塞
4:随便创建一个项目,只要可以使用最简单的redis客户端jedis就行了,这里只做演示,在生成中肯定不是这么做的,编写如下代码,只要可以发布一个事件就行了。
发布事件
5:发布一个事件,浏览器相应如下,返回的数据正确。
返回结果
3:流程梳理
流程图
总结
此篇分享的是openresty的 cache,redis-sub 内容,希望可以帮助有需要的,后续会持续更新openresty其他部分的内容,设计到缓存风暴,锁,redis-cluster 等,喜欢的大佬们可以关注,留言,转发哦~
这篇关于OpenResty-lua-cache-lua-redis-sub的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18Redis安装入门:新手必读指南
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作