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

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.dtcms.com/a/323932.html

相关文章:

  • 【东枫科技】NTN-IOT 卫星互联网原型系统,高达1.6G大带宽
  • LeetCode简单题 - 学习
  • java生成用户登录token
  • Android Camera 打开和拍照APK源码
  • Redis实现消息队列三种方式
  • 前端学习日记 - 前端函数防抖详解
  • c#属性(Property)的概念定义及使用详解
  • 音视频学习(五十二):ADTS
  • i2c dump工具使用(202589)
  • WAV音频数据集MFCC特征提取处理办法
  • 人工智能正在学习自我提升的方式
  • Agent在游戏行业的应用:NPC智能化与游戏体验提升
  • PySpark
  • Java集合中的 LinkedList
  • 通过sealos工具在ubuntu 24.02上安装k8s集群
  • JavaScript性能优化30招实战指南
  • JUC学习笔记-----ReentrantLock
  • 怎么用java实现视频逐帧截图并保存
  • ELK分布式日志采集系统
  • 二、Linux 设置文件系统扩展属性
  • 242. 有效的字母异位词
  • 【Html网页模板】炫酷科技风公司首页
  • 元数据管理与数据治理平台:Apache Atlas 通知和业务元数据 Notifications And Business Metadata
  • Java学习第一百二十二部分——HTTPS
  • Apache Pulsar性能与可用性优化实践指南
  • JavaWeb(苍穹外卖)--学习笔记17(Apache Echarts)
  • JavaWeb(苍穹外卖)--学习笔记18(Apache POI)
  • 元数据管理与数据治理平台:Apache Atlas 分类传播 Classification Propagation
  • Qt 框架全面解析:从基础到应用
  • Android 四大布局:使用方式与性能优化原理