打赏

Lua架构

一、缓存设计

image-20210207113756519

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
posted @   不像话  阅读(387)  评论(0编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示