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实现高性能高可用限流缓存相关推荐

  1. Openresty/Lua/Redis/Mysql实现静态化网页加载

    场景 类似于秒杀活动,或者是有一些不常变动的网页,可以通过生成本地html文件,用户访问时直接通过nginx访问本地文件,不走或者减少操作数据库,以降低用户等待时间,提升用户体验. 实践 下载open ...

  2. 【MySQL】高性能高可用表设计实战-表设计篇(MySQL专栏启动)

  3. 高性能高可用MySQL(主从同步,读写分离,分库分表,去中心化,虚拟IP,心跳机制)

    高性能高可用MySQL(主从同步,读写分离,分库分表,去中心化,虚拟IP,心跳机制) 视频地址:https://www.bilibili.com/video/BV1ry4y1v7Tr?p=8& ...

  4. Redis的主从复制与高可用搭建(哨兵模式)

    前言 为什么要使用Redis 首先我们先介绍些redis的基本概念,redis是Nosql数据库,是一个key-value存储系统.虽然redis是key-value的存储系统,但是redis支持的v ...

  5. 01 MySQL生产环境高可用架构浅谈

    1.数据库主从架构与分库分表 ​ 随着现在互联网的应用越来越大,数据库会频繁的成为整个应用的性能瓶颈.而我们经常使用的MySQL数据库,也会不断面临数据量太大.数据访问太频繁.数据读写速度太快等一系列 ...

  6. 利用LVS+Keepalived 实现高性能高可用负载均衡服务器

    作者:NetSeek [url]http://www.linuxtone.org[/url](IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 ...

  7. 使用Sentinel配置Redis 3.x主从高可用服务

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实 ...

  8. keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...

    概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...

  9. MySQL数据库的高可用方案总结

    高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...

最新文章

  1. System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) 问题解决方法
  2. 冠状病毒如何杀灭最高效?这里有一份几十年的实验汇总
  3. 必须熟悉的vim快捷键操作
  4. 学习笔记94—所有用过SCI-hub的科研工作者都应该知道的事
  5. Python:win32com 模块
  6. 结对编程小项目实现 Python+PyQt5+OOP
  7. IIS上.Net 扩展中进行恢复
  8. 关键字回顾(final/finally/finalize()、Synchronized、volatile、static)
  9. java的归并排序算法_归并排序算法Java实现
  10. 【Java】网络编程
  11. ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)
  12. 异步执行线程的两种方法
  13. 2010罗森伯格HDCS®综合布线分布线销商大会顺利召开
  14. VS C# string 字符查找 寻找指定字符
  15. Windows资源监控工具汇总
  16. android手机ipad传照片,教你iPhone与安卓跨平台如何传照片
  17. 史上最全的Web安全相关网址汇总【转帖】
  18. 小白也可以学会小爱同学语言控制灯
  19. Apifox—诠释国产接口管理工具新高度
  20. sql删除用逗号分隔字段中的某一个值

热门文章

  1. 基于java SSM图书管理系统简单版设计和实现
  2. MySQL添加、更新、删除数据
  3. java cpu高_Java中的CPU占用高和内存占用高的问题排查
  4. win+mysql自动备份吗_Windows下mysql自动备份的最佳方案
  5. php按照名称搜索,PHP从类型和名称搜索
  6. IOS ActivityIndicator 活动指示器使用
  7. Redis发布订阅模式
  8. C++类的定义和对象的创建
  9. jsoup解析和遍历一个html文档详解
  10. 乘基取整法是什么_数字逻辑电路-学习指南