当前位置: 首页 > java >正文

nginx+Lua环境集成、nginx+Lua应用

nginx+lua+redis实践

概述

nginx、lua访问redis的三种方式:

1。 HttpRedis模块。

指令少,功能单一 ,适合简单的缓存。只支持get 、select命令。

2。 HttpRedis2Module模块。

功能强大,比较灵活。

3。 lua-resty-redis库

OpenResty。api。适合复杂业务,节省内存。

OpenResty:基于nginx开源版本的一个扩展版本。集成了大量的精良的lua库。

OpenResty安装

安装wget

[root@localhost yum.repos.d]# yum install wget

下载资源库

[root@localhost yum.repos.d]# wget https://openresty.org/package/centos/openresty.repo

得到文件: openresty.repo 安装OpenResty

[root@localhost yum.repos.d]# yum install openresty

启动OpenResty

[root@localhost yum.repos.d]# /usr/local/openresty/nginx/sbin/nginx -p /usr/local/openresty/nginx/

[root@localhost yum.repos.d]#

测试:

我们用nat,注意端口映射。

初试测试lua

修改conf

server {

listen 8080; location / {

default_type text/html;

content_by_lua 'ngx.say("hello my openresty")'; }

}

redis安装

安装epel:第三方的源(软件安装包)。

[root@localhost /]# yum install epel-release

安装redis

[root@localhost /]# yum install redis

启动redis

[root@localhost /]# /usr/bin/redis-cli

Could not connect to Redis at 127.0.0.1:6379: Connection refused

Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>

[root@localhost /]# systemctl start redis

测试redis

redis服务端和redis客户端 启动redis客户端

[root@localhost /]# cd /usr/bin/     [root@localhost /]# which redis-cli /usr/bin/redis-cli

[root@localhost bin]# ./redis-cli

127.0.0.1:6379> set akey avalue OK

127.0.0.1:6379> get akey "avalue"

127.0.0.1:6379> quit

[root@localhost bin]# pwd /usr/bin

[root@localhost bin]#

HttpRedis

修改配置文件

mValue[root@localhost conf]# cat nginx-httpredis.conf worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server {

listen       80;

server_name  www.cpf.com;

root html;

index index.html;

location / {

default_type text/plain;

set $redis_key "m";

redis_pass 127.0.0.1:6379;

error_page 404 = @fetch; }

location @fetch {

root html; }

}

}

[root@localhost conf]#

以这个配置文件启动

[root@localhost conf]# /usr/local/openresty/nginx/sbin/nginx -p /usr/local/openresty/nginx/ -c /usr/local/o 测试一下:

1。 redis中没有 key为m的 键值对。

[root@localhost conf]# curl http://localhost/1.html

I am 1 html

2。我们通过redis,设置key为m的value是:"mValue"。(m=mValue)

[root@localhost conf]# curl http://localhost/1.html mValue

扩展:

用于降级。

HttpRedis2Module

[root@localhost conf]# cat nginx-httpRedis2Module.conf worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server {

listen       80;

server_name  www.cpf.com;

root html;

index index.html;

location /get {

set_unescape_uri $key 'n';

redis2_query get $key;

redis2_pass 127.0.0.1:6379; }

location /set {

set_unescape_uri $key 'n';

redis2_query set $key 'nValue';

redis2_pass 127.0.0.1:6379; }

}

}

[root@localhost conf]#

重启

[root@localhost conf]# /usr/local/openresty/nginx/sbin/nginx -p /usr/local/openresty/nginx/ -c /usr/local/o 测试:

[root@localhost conf]# curl localhost/get $-1

[root@localhost conf]# curl localhost/set +OK

[root@localhost conf]# curl localhost/get $7

n1Value

[root@localhost conf]#

http://www.xdnf.cn/news/17573.html

相关文章:

  • 自动化备份全网服务器数据平台
  • UE材质World Position 和 Object Position
  • Linux操作系统从入门到实战(十七)进程与进程基本概念
  • Redis一站式指南一:从MySQL事务到Redis持久化及事务实现
  • Error: error:0308010C:digital envelope routines::unsupported at new Hash
  • 计算机视觉(CV)——pytorch张量基本使用
  • 青龙峡拔韭菜
  • 【东枫科技】NTN-IOT 卫星互联网原型系统,高达1.6G大带宽
  • 免费数字人API开发方案
  • 使用正则表达式检测Base64字符串并提取图片类型及正文的JavaScript函数,代码精简且高效
  • How Websites Work 网站如何运作
  • Linux入门指南:26个基础命令全解析
  • C语言(长期更新)第10讲:操作符详解(二)
  • vue3项目中在一个组件中点击了该组件中的一个按钮,那么如何去触发另一个组件中的事件?
  • playwright-mcp 项目全解析:从理论到实践
  • 量子计算机实用化:从理论到现实的艰难跨越
  • (一)Tailwindcss
  • Win10清理C盘步骤
  • Spring事务失效的常见原因
  • ROS2 QT 多线程功能包设计
  • 基于PyTorch一文讲清楚损失函数与激活函数并配上详细的图文讲解
  • redis集群-docker环境
  • 咪咕MGV3200-KLH_GK6323V100C_板号E503744_安卓9_短接强刷包-可救砖
  • 大数据架构演变之路
  • java的三种组件漏洞靶场攻略
  • LeetCode 组合总数
  • 人工智能系列(8)如何实现无监督学习聚类(使用竞争学习)?
  • 1. 电阻选型
  • 计算机网络:如何理解目的网络不再是一个完整的分类网络
  • mpv core_thread pipeline