OpenResty+Lua+redis+mysql实现高性能高可用限流缓存
OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台.并发性能可在10k-1000k
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,在目录:/usr/local/openresty/nginx 下。
修改/usr/local/openresty/nginx/conf/nginx.conf ,将配置文件使用的根设置为root,目的就是将来要使用lua脚本的时候 ,直接可以加载在root下的lua脚本。
#user nobody; 配置文件第一行原来为这样, 现改为下面的配置
user root root;
缓存预热和二级缓存查询
在/root/lua目录下创建ad_load.lua ,实现连接mysql 查询数据 并存储到redis中。
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 position = uri_args["position"]local db = mysql:new()
db:set_timeout(1000)
local props = { host = "192.168.41.188", port = 3306, database = "changgou_business", user = "root", password = "123456"
}local res = db:connect(props)
local select_sql = "select url,image from tb_ad where status ='1' and position='"..position.."' and start_time<= NOW() AND end_time>= NOW()"
res = db:query(select_sql)
db:close() local redis = require("resty.redis")
local red = redis:new()
red:set_timeout(2000)local ip ="192.168.41.188"
local port = 6379
red:connect(ip,port)red:set("ad_"..position,cjson.encode(res))
red:close()ngx.say("{flag:true}")
修改/usr/local/openresty/nginx/conf/nginx.conf文件:
./nginx -s reload
OpenResty+Lua+redis+mysql实现高性能高可用限流缓存相关推荐
- Openresty/Lua/Redis/Mysql实现静态化网页加载
场景 类似于秒杀活动,或者是有一些不常变动的网页,可以通过生成本地html文件,用户访问时直接通过nginx访问本地文件,不走或者减少操作数据库,以降低用户等待时间,提升用户体验. 实践 下载open ...
- 【MySQL】高性能高可用表设计实战-表设计篇(MySQL专栏启动)
- 高性能高可用MySQL(主从同步,读写分离,分库分表,去中心化,虚拟IP,心跳机制)
高性能高可用MySQL(主从同步,读写分离,分库分表,去中心化,虚拟IP,心跳机制) 视频地址:https://www.bilibili.com/video/BV1ry4y1v7Tr?p=8& ...
- Redis的主从复制与高可用搭建(哨兵模式)
前言 为什么要使用Redis 首先我们先介绍些redis的基本概念,redis是Nosql数据库,是一个key-value存储系统.虽然redis是key-value的存储系统,但是redis支持的v ...
- 01 MySQL生产环境高可用架构浅谈
1.数据库主从架构与分库分表 随着现在互联网的应用越来越大,数据库会频繁的成为整个应用的性能瓶颈.而我们经常使用的MySQL数据库,也会不断面临数据量太大.数据访问太频繁.数据读写速度太快等一系列 ...
- 利用LVS+Keepalived 实现高性能高可用负载均衡服务器
作者:NetSeek [url]http://www.linuxtone.org[/url](IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 ...
- 使用Sentinel配置Redis 3.x主从高可用服务
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实 ...
- keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...
概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...
- MySQL数据库的高可用方案总结
高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...
最新文章
- System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) 问题解决方法
- 冠状病毒如何杀灭最高效?这里有一份几十年的实验汇总
- 必须熟悉的vim快捷键操作
- 学习笔记94—所有用过SCI-hub的科研工作者都应该知道的事
- Python:win32com 模块
- 结对编程小项目实现 Python+PyQt5+OOP
- IIS上.Net 扩展中进行恢复
- 关键字回顾(final/finally/finalize()、Synchronized、volatile、static)
- java的归并排序算法_归并排序算法Java实现
- 【Java】网络编程
- ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)
- 异步执行线程的两种方法
- 2010罗森伯格HDCS®综合布线分布线销商大会顺利召开
- VS C# string 字符查找 寻找指定字符
- Windows资源监控工具汇总
- android手机ipad传照片,教你iPhone与安卓跨平台如何传照片
- 史上最全的Web安全相关网址汇总【转帖】
- 小白也可以学会小爱同学语言控制灯
- Apifox—诠释国产接口管理工具新高度
- sql删除用逗号分隔字段中的某一个值