Lua和OpenResty

lua

简单的来说lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,

其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.

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

如果安装时出了错误 应该是需要安装lua的相关依赖库的支持 执行如下命令

yum install libtermcap-devel ncurses-devel libevent-devel readline-devel

然后再执行lua是否安装成功

[root@localhost ~]# lua 

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio   出现这句就表示安装成功了

lua的基本语法

lua有交互式编程和脚本式编程  交互式编程就是直接输入语法 就能执行

脚本式编程需要编写脚本,然后再执行命令 执行脚本才可以  一般都采用脚本式编程

OpenResty:

OpenResty是一个机遇nginx的可伸缩的web平台

OpenResty 相当于封装了nginx,并且集成了lua脚本

安装OpenResty

在linux安装OpenResty

1.添加仓库执行命令

yum install yum-utils

yum-config-manager --add-repo 

https://openresty.org/package/centos/openresty.repo

2.执行安装

yum install openresty

3.安装成功后 会在默认的目录下

/usr/local/openresty

广告缓存的载入与读取

1.lua+nginx  查询数据放入redis中

利用lua脚本 将mysql中的数据 全量 导入到redis中

a.连接mysql ,按照广告位置position读取广告列表,转换为json字符串。

b.连接redis,将广告列表json字符串存入redis 。

请求需要带参数 position --用来指定广告的位置  返回值为json

然后写一个lua脚本:

修改/usr/local/openresty/nginx/conf/nginx.conf文件: 添加头信息,和 location信息:

定义lua缓存命名空间,修改nginx.conf: 添加如下代码即可

lua_shared_dict dis_cache 128m;

2.从redis中获取数据

定义请求,用户根据广告分类的ID  获取广告的列表

通过lua脚本直接从redis中获取数据即可

在 /root/lua目录下创建 read_ad.lua :

在/usr/local/openresty/nginx/conf/nginx.conf中配置代码如下:

location /read_ad {

    content_by_lua_file /root/lua/read_ad.lua;

}   这是查询缓存中的广告数据

3.加入openresty本地缓存

修改read_ad.lua文件 代码如下:

测试地址 : ` http://192.168.200.128/update_ad?position=web_index_lb `

此时会将轮播图位置的所有广告查询出来,并且存入到redis缓存中

测试地址:http://192.168.211.132/read_content?id=1

此时会获取分类ID=1的所有广告信息

你可能感兴趣的:(Lua和OpenResty)