最近在学这方面相关的内容,怕之后会忘记,写着记录一下
一.安装openresty
1.添加仓库执行命令
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
2.执行安装
yum install openresty
3.安装成功后 会在默认的目录如下:
/usr/local/openresty
二.部署nginx
此时默认已经安装好了nginx,在目录:/usr/local/openresty/nginx 下
端口号默认为80端口,通过浏览器可以直接访问到
三,通过lua脚本部署ngnix实现从mysql数据库中读取数据,并存入redis中
3.1查询数据放入redis中
实现思路:
定义请求:用于查询数据库中的数据更新到redis中。
a.连接mysql ,按照XX分类ID读取XX列表,转换为json字符串。
b.连接redis,将XX列表json字符串存入redis 。
代码如下:
vi 创建一个文件vi /root/lua/update_content.lua
(可自行创建在任何位置,后缀一定是 .lua,一定要记住路径,后面需要用到)
ngx.header.content_type="application/json;charset=utf8"
local cjson = require("cjson")
local mysql = require("resty.mysql")
local uri_args = ngx.req.get_uri_args()
local id = uri_args["id"]
local db = mysql:new()
db:set_timeout(1000)
local props = {
host = "数据库的地址",
port = 3306,
database = "数据的名称",
user = "root",
password = "root"
}
local res = db:connect(props)
local select_sql = "select url,pic from tb_content where status ='1' and category_id="..id.." order by sort_order" -- sql语句
res = db:query(select_sql)
db:close()
local redis = require("resty.redis")
local red = redis:new()
red:set_timeout(2000)
local ip ="redis的ip地址"
local port = 6379
red:connect(ip,port)
red:set("content_"..id,cjson.encode(res))
red:close()
ngx.say("{flag:true}")
四.从redis中获取数据
实现思路: