• 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
    
    作者:不像话
    若标题中有“转载”字样,则本文版权归原作者所有。欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

  • 相关阅读:
    【WIN32API&DAPI】窗口相关函数
    第十四章_安全性
    android实现gif图与文字混排
    Extjs 4.2 设置buttontext为中文
    HDU 5384 Danganronpa (AC自己主动机模板题)
    bzoj2938【Poi2000】病毒
    [Java开发之路](9)对象序列化与反序列化
    atitit.jndi的架构与原理以及资源配置and单元測试实践
    QueryError:Incorrect result size: expected 1, actual 0
    LightOJ 1070 Algebraic Problem (推导+矩阵高速幂)
  • 原文地址:https://www.cnblogs.com/jake-jin/p/14392175.html
Copyright © 2020-2023  润新知