2019独角兽企业重金招聘Python工程师标准>>>

这章主要演示怎么通过lua连接redis,并根据用户输入的key从redis获取value,并返回给用户

操作redis主要用到了lua-resty-redis库,代码可以在github上找得到

而且上面也有实例代码

由于官网给出的例子比较基本,代码也比较多,所以我这里主要介绍一些怎么封装一下,简化我们调用的代码

lua/redis.lua

local redis = require "resty.redis"local config = {host = "127.0.0.1",port = 6379,-- pass = "1234"  -- redis 密码,没有密码的话,把这行注释掉
}local _M = {}function _M.new(self)local red = redis:new()red:set_timeout(1000) -- 1 secondlocal res = red:connect(config['host'], config['port'])if not res thenreturn nilendif config['pass'] ~= nil thenres = red:auth(config['pass'])if not res thenreturn nilendendred.close = closereturn red
endfunction close(self)local sock = self.sockif not sock thenreturn nil, "not initialized"endif self.subscribed thenreturn nil, "subscribed state"endreturn sock:setkeepalive(10000, 50)
endreturn _M

其实就是简单把连接,跟关闭做一个简单的封装,隐藏繁琐的初始化已经连接池细节,只需要调用new,就自动就链接了redis,close自动使用连接池

lua/hello.lua

local cjson = require "cjson"
local redis = require "redis"
local req = require "req"local args = req.getArgs()
local key = args['key']if key == nil or key == "" thenkey = "foo"
end-- 下面的代码跟官方给的基本类似,只是简化了初始化代码,已经关闭的细节,我记得网上看到过一个  是修改官网的代码实现,我不太喜欢修改库的源码,除非万不得已,所以尽量简单的实现
local red = redis:new()
local value = red:get(key)
red:close()local data = {ret = 200,data = value
}
ngx.say(cjson.encode(data))

访问 http://localhost/lua/hello?key=hello

即可获取redis中的key为hello的值,如果没有key参数,则默认获取foo的值

ok,到这里我们已经可以获取用户输入的值,并且从redis中获取数据,然后返回json数据了,已经可以开发一些简单的接口了

示例代码 参见demo4部分

转载于:https://my.oschina.net/362228416/blog/816438

openresty 前端开发入门四之Redis篇相关推荐

  1. openresty 前端开发入门五之Mysql篇

    2019独角兽企业重金招聘Python工程师标准>>> openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysq ...

  2. openresty 前端开发入门三之JSON篇

    这章主要介绍一下,lua怎么返回一个json字符串,怎么把一个table转成json字符串,又怎么把一个json字符串转成json 其实很简答,直接使用cjson库的encode.decode方法即可 ...

  3. openresty json mysql_openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  4. 前端开发入门就这一篇文章

    本文涉及最最基础的HTML+CSS 1.HTML是什么鬼? 大白话:就是用成对尖括号(类似:<元素></元素>) 表示内容结构的一组方法,就是搭一个骨架,骨架(元素)中才放入各 ...

  5. Web前端html5+css3前端开发入门学习笔记

    文章目录 前言 HTML 认识HTML 1. 网页组成和本质 2.了解浏览器 3.web标准 4.HTML感知 5.HTML骨架 6.编译软件vscode的简介和使用 7.注释 8.标签组成和关系 9 ...

  6. html在线时间统计图,Web前端开发入门,HTML一张图学会,还在看数小时视频浪费时间?...

    同样的地方,同样的时间,又跟大家见面了.想学习前端朋友可以加我们的前端学习群:617327703 很多人问我,前端开发入门怎么开始?这里呢,先看下我之前发的文章有大体的概括思路跟流程在里面.今天主要分 ...

  7. web前端开发入门学习线路图详解-2019升级版

    现如今,Web前端工程师已经成为各大互联网公司不可或缺的热门职位,从业者队伍日渐庞大,这其中不乏零基础学习者和转行人士.为了方便大家系统而全面的掌握前端基础知识,千锋小编特意整理了web前端开发入门学 ...

  8. Web前端开发入门之网页制作三要素!

    Web前端开发是由网页制作演变而来的,主要由HTML.CSS.JavaScript三大要素组成.专业的Web前端开发入门知识也一定会包含这些内容,今天小千就给大家简单介绍一下. HTML,超文本标记语 ...

  9. 支付宝前端推出《Web前端开发入门手册》

    web前端教程 用大白话,来讲编程 近日,支付宝前端团队写的<Web前端开发入门手册>对外公开了,原本是用于内部培训使用,现在对外公开了. 这本手册是初学者的福音,它的受众群体是前端小白, ...

最新文章

  1. python操作mysql(二)
  2. css3价格斜切_CSS3倾斜skew()方法_CSS3教程_绿叶学习网
  3. mysql之索引组织表
  4. 可以直接拿来用的15个jQuery代码片段
  5. Log4j(二)—— Log4j基本使用方法
  6. 14Penrose广义逆(II)
  7. 一文学懂经典算法系列之:直接选择排序(附讲解视频)
  8. MATLAB指纹识别算法实现
  9. 龙泉寺贤超法师:用 AI 为古籍经书识别、断句、翻译
  10. (五)JMockit的API:@Capturing--基础篇
  11. 汇编笔记转自编程达人
  12. 仪表板 ajax实例,CQD 开发示例 - Skype for Business Server 2015 | Microsoft Docs
  13. linux内核开启otg,OTG驱动分析(一)
  14. Linux 安装Oracle11g完整安装图文教程另附基本操作 (分享)
  15. 火力重点转移,openstack中国行(深圳站)推出,各站欢迎讲师报名呀!
  16. linux进程间的通信实验,linux实验进程之间的通信.doc
  17. NISP一级学习笔记(1~9章知识点集合大全)
  18. 常见面试问题1:ZooKeeper、Redis、Mysql、JVM、Spring、Dubbo
  19. 纯css实现太极阴阳鱼动画
  20. 【产品经理】手绘风格在网页设计中的运用

热门文章

  1. linux 运行c b停止,以下Linux命令中,用于终止某个进程的命令是()。A.deadB.killC.quitD.exit...
  2. 数据挖掘工具weka使用
  3. autosys虚拟机定义
  4. 非关语言: 设计模式
  5. SpringAop对struts2的Action设置切面织入时报错java.lang.NoSuchMethodException
  6. LeetCode 215 Kth Largest Element in an Array
  7. UI复习练习_优酷布局
  8. MySQL性能调优与架构设计——第5章 备份与恢复
  9. Lighttpd日志打印格式
  10. VS2005发布网站问题及aspnet_merge.exe”已退出,代码为 1的错误