Lua架构
一、缓存设计
1、查询Nginx缓存,如果有缓存,则直接将内容返回。
2、如果Nginx缓存中没有数据,则通过Lua脚本查询Redis,如果Reids中有数据,则直接返回,并将数据缓存加载到Nginx中。
3、如果Redis中没有缓存,则通过Lua脚本查询Mysql,如果Mysql中有数据,则将数据返回,并将数据缓存加载到Redis中。
二、Lua简介
Lua是一种轻量级小巧的脚本语言,用C语言编写的开源脚本,其设计的目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展定制功能。
三、Lua特性
- 支持面向过称编程和函数式编程。
- 自动内存管理;只提供一种通用类型的表。
- 语言内置模式匹配;闭包;函数也可以看作一个值;提供多线程;
- 通过闭包和table可以很方便地支持面向对象编程所需的一些关键机制。
四、应用场景
- 游戏开发
- 独立应用脚本
- Web应用脚本
- 扩展和数据库插件:如;Mysql Proxy
- 安全系统,入侵测试
- redis中嵌套调用实现类似事物的功能
- web容器中应用处理一些过滤、缓存等逻辑
五、Lua安装
在Linux系统中安装步骤
curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar -zxf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux test
注意:此时安装,可能会出现依赖错误,安装依赖包即可
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
此时执行lua测试看lua是否安装成功
[root@localhost lua-5.3.5]# lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
可以在本地目录下编辑一个.lua后缀文件,测试一下
[root@localhost luatest]# cat hello.lua
print("hello")
#运行结果
[root@localhost luatest]# lua hello.lua
hello
作者:Jace Jin
github地址:https://github.com/buxianghua
原创文章版权归作者所有.
欢迎转载,转载时请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎转载,转载时请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结