解决方案:OpenResty 网站首页数据缓存

本文介绍了如何利用OpenResty(Nginx+Lua)搭建Web应用服务器,实现首页数据缓存。首先讲解了OpenResty的特性及安装步骤,然后详细阐述了通过Lua脚本进行缓存预热和二级缓存读取的操作,包括连接数据库、存储到Redis、从Redis读取数据等。最后讨论了如何在OpenResty中添加本地缓存以减轻Redis的压力。

解决方案:OpenResty 网站首页数据缓存


关键词

  • Web 应用服务器,封装Nginx,集成LUA脚本
  • lua脚本实现缓存预热
  • lua脚本实现二级缓存读取
  • openresty本地缓存

需求: 将网站首页进行独立部署到Nginx中

实现的思路 : Nginx+Lua(OpenResty成熟的产品)

一、OpenResty

OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web平台,由中国人章亦春发起,提供了很多高质量的第三方模块。

OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能Web 应用系统

360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是OpenResty 的深度用户。

OpenResty 简单理解成 就相当于封装了Nginx,并且集成了LUA脚本,开发人员只需要简单的其提供了模块就可以实现相关的逻辑,而不再像之前,还需要在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

安装nginx

默认已经安装好了nginx,在目录:/usr/local/openresty/nginx 下

修改/usr/local/openresty/nginx/conf/nginx.conf ,将配置文件使用的根设置为root,目的就是将来要使用lua脚本的时候 ,直接可以加载在root下的lua脚本。

#user nobody; 配置文件第一行原来为这样, 现改为下面的配置
user root root;

测试访问 http://47.103.77.82/
在这里插入图片描述

二、首页数据缓存实现思路

缓存预热与二级缓存查询

步骤一: 编写lua脚本实现缓存预热(将mysql里的数据查询出来存入redis)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVDWQBp5-1630565924386)(七、网站首页高可用解决方案.assets/image-20210804195557591.png)]

步骤二: 编写lua脚本实现二级缓存读取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qeft4T6v-1630565924388)(七、网站首页高可用解决方案.assets/image-20210804195620359.png)]

缓存预热

实现思路:

定义请求:用于查询数据库中的数据更新到redis中。
(1)连接mysql ,读取数据列表,转换为json字符串。
(2)连接redis,将数据列表json字符串存入redis 。

在/root/lua目录下创建data_update.lua ,实现连接mysql 查询数据 并存储到redis中。

ngx.header.content_type="application/json;charset=utf8"
local cjson = require("cjson")
local mysql = require("resty.mysql")
local uri_args = ngx
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿城大饼

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值