OpenResty真实实践

2022-08-24 16:14:18 浏览数 (1)

这是来自黑马Redis视频的图片,方便我后期补充本篇文章使用!

我们先配置好请求路径,只要访问ip:9000/abc 就触发lua脚本了

代码语言:javascript复制
worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {

        # 加载lua模块
        lua_package_path "/usr/local/openresty/lualib/?.lua;;";
        # 加载c模块
        lua_package_cpath "/usr/local/openresty/lualib/?.so;;";

    server {
        listen 9000;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>Hello, World! second test!</p>")
            ';
        }
        location /abc {
            # default_type text/html;
            default_type application/json;
            content_by_lua_file lua/a.lua;
        }
    }
}

创建lua/a.lua文件

请求lua操作Redis:编辑a.lua 文件

代码语言:javascript复制
-- 引入redis模块
local redis=require 'resty.redis'
-- 创建redis连接对象对象
local redisObj=redis:new()
-- 设置redis超时时间为1s
redisObj:set_timeout(1000)
-- 设置redis连接信息
local ok,err=redisObj:connect('192.168.31.204',6379)
--设置redis连接密码
redisObj:auth('123456')
-- 判断是否连接成功
if not ok then
ngx.say('failed to connect redis',err)
return
end

-- 存入数据
ok,err=redisObj:set('username','zhangsan')
-- 判断是否存入成功
if not ok then 
ngx.say('failed to set key',err)
return
end

--从redis中获取数据
local res,err=redisObj:get('username')
ngx.say(res)

-- 关闭Redis连接
redisObj:close()
ngx.say('ok')

操作mysql:修改a.lua文件

代码语言:javascript复制
local mysqL=require("resty.mysql")
local db=mysqL:new()
local ok,err=db:connect{
    host="192.168.31.204",
    port=3306,
    user='root',
    password='740969606',
    database='test'
}
db:set_timeout(1000)
-- 设定sql
db:send_query('select * from User limit 1')
-- 读取数据
local res,err,errcode,sqlstate=db:read_result()
db:close()
-- 数据存储在res数组中 第一行数据就是res[1],字段是user_name 使用就是res[1].user_name
ngx.say('姓名:'..res[1].user_name..' ,学生年龄:'..res[1].user_age)

完成!

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

0 人点赞