基于Docker实现OpenResty连接Redis

本文档详细介绍了如何使用Docker拉取Redis和OpenResty镜像,创建容器,并进行端口映射。接着展示了如何在OpenResty容器中安装必要工具,配置Nginx及Lua脚本来连接并从Redis读取数据。最后,通过curl命令验证了OpenResty成功从Redis获取数据,实现了OpenResty与Redis的集成。
摘要由CSDN通过智能技术生成
  • 搭建Redis
#它会自动下载redis最新版本的镜像
docker pull redis

#根据镜像创建容器,绑定宿主机6379端口用于外网访问容器的redis
docker run -itd --name redis-test -p 6379:6379 redis

#进入容器
docker exec -it redis-test bash

#进入redis
redis-cli
  • 搭建OpenResty
#下载openresty镜像
docker pull sevenyuan/openresty

#创建容器
docker run -itd --name openrest-test -p 8080:8080 -p 80:80 sevenyuan/openresty

#进入容器
docker exec -it openrest-test bash

#这个镜像很多基本命令都没有,所以要安装这些
apt-get update
apt-get install vim
apt-get install curl

#设置openresty的目录到环境变量文件(/etc/profile)方便使用命令
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH

#用source命令重新加载环境变量文件
source /etc/profile
  • 编写nginx.conf文件并启动
#在/usr/local目录创建自定义配置目录,-p参数可以创建多级目录
mkdir -p test/conf

#写第一个Nginx文件 nginx.conf
server {
        listen 8080;
        location / {
            default_type text/html;
            content_by_lua_block {
                ngx.say("<p>hello, world</p>")
            }
        }
    }

#把这个Nginx加到OpenResty的nginx配置文件里去
vim /usr/local/openresty/nginx/conf/nginx.conf
#在Http内加上这句,每次启动都会加载这个自定义目录的所有conf类型文件
include /usr/local/test/conf/*.conf;

#然后重启Openresty 命令跟nginx的一样
openresty -s reload

#调用8080端口查看效果,会看到显示Hello World即为成功
curl localhost:8080
  • 编写连接Redis的Lua文件
#还是在/usr/local/test/conf目录下创建一个lua文件

#require函数是Lua是提供的,用于引入Lua模块 resty.redis就是Openresty内置的redis模块
local redis = require("resty.redis")
local redisCache = redis:new()
#因为Redis安装在另一个容器内,仅暴露6379,所以connect方法的Ip参数要填宿主机IP才能实现通信
local ok ,err = redisCache:connect("宿主机IP",6379)
redisCache:set_timeout(1000)
if not ok then
 ngx.say("failed to connect:",err)
 redisCache:close()
 return
end
#name这个key是我在redis容器加的一个key,用来试验Openresty能不能获取到值用的
local name ,err = redisCache:get("name")
ngx.say(name)
ok ,err =redisCache:close()
  • 编写连接Redis的Nginx配置文件
#配置文件同样在/usr/local/test/conf目录下,名字叫nginxLua.conf
server {
        listen 8081;
        location / {
            default_type text/html;
            content_by_lua_file /usr/local/wcb/redis.lua;
        }
    }

#然后重启openResty
openresty -s reload

#访问,看下效果
curl localhost:8081 就能看到我设置在redis中对应name的值了

到此,openResty连接Redis的试验就成功了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值