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的所有广告信息