当前位置: 首页 > news >正文

架构设计 - Nginx Lua 缓存配置

摘要:

web 应用业务缓存通常3级:

一级缓存:JVM 本地缓存

二级缓存:Redis集中式缓存

三级缓存:Nginx Proxy Cache 缓存 或 Nginx Lua 缓存

四级缓存:静态资源CDN缓存 页面静态化

本文主要分享 Nginx Lua 缓存配置开发

鉴于 Nginx Proxy Cache 缓存的劣势,在生产项目中很少使用,如果真正要体现出在距离用户最近的位置设置缓存,需要使用 Nginx Lua 缓存,才能发挥出缓存的优势。

Lua 脚本语言出现前,需要使用 c 或 c++ 语言开发Nginx功能,难度大,风险高。Nginx和Lua集成后,可以通过 Lua 脚本配置 Nignx 。

Nginx Lua 脚本开发的优势:

协程机制

  • 协程是线程内独立的运行单元,依附于线程的内存模型,切换开销小。
  • 完全可以使用同步方式编写代码,不需要考虑异步机制。如果执行过程中遇到了类似IO的阻塞事件,会到Nginx异步模型epoll上注册回调句柄,让出cpu执行权。如果异步模型接收到阻塞事件调用的返回后,唤醒对应的协程。
  • 对共享变量的访问,都无需加锁。

Lua 的协程机制 类似于 Nginx 的协程机制。

Nginx 协程

  • nginx 每个worker进程都是在epoll或kqueue这种事件模型之上,封闭成协程。
  • 每个请求都有一个协程处理
  • 即使 ngx_lua 相对 C 有一定的开销࿰
http://www.lryc.cn/news/383562.html

相关文章:

  • lua的GC
  • 基于python爬虫对豆瓣影评分析系统的设计与实现
  • 想让梦想照进现实?六西格玛绿带培训为你架起桥梁
  • 大数据面试题之HDFS
  • (9)农作物喷雾器
  • 智慧互联:Vatee万腾平台展现科技魅力
  • Charles抓包工具系列文章(四)-- Rewrite 重写工具
  • 【PB案例学习笔记】-24创建一个窗口图形菜单
  • 环境配置的相关问题
  • github配置可拉取项目到本地
  • Snippet-AndroidFontWeight
  • 选择合适的分类评价指标:传统指标与自定义指标的权衡
  • 数据结构-线性表的链式表示
  • DDL-表操作-数据类型
  • python实例代码 - 多层感知机预测销售情况
  • JVM专题十:JVM中的垃圾回收机制
  • MySQL入门学习-索引.创建索引
  • ChatGPT智能对话绘画系统 带完整的安装源代码包以及搭建教程
  • 巴中市红色旅游地管理系统
  • ROS2从入门到精通2-2:详解机器人3D可视化工具Rviz2与案例分析
  • 国企:2024年6月中国铁路相关招聘信息,6.27截止
  • React+TS前台项目实战(十九)-- 全局常用组件封装:带加载状态和清除等功能的Input组件实现
  • php composer 报错
  • 数据安全如何防护?迅软加密软件保护企业数据资产
  • Android 11 ,默认授予预置应用/APK 需要的权限,解决permission denied for window type 2003 问题。
  • RabbitMQ(消息队列)
  • LeetCode-数组/回溯-No40组合总和II
  • 直接调用 Java 线程的 run() 方法会发生什么?
  • 计算机毕业设计Thinkphp/Laravel学生考勤管理系统zyoqy
  • 3浏览器安全