• 国内企业使用nginx的还是挺多的,我在工作的过程中,也经常使用nginx;下面就简单记录一下lua访问redis

    local cjson = require "cjson"
    local redis = require "resty.redis"
    local red = redis:new()  -- 设置后续操作的超时(以毫秒为单位)保护,包括connect方法
    red:set_timeout(60000)
    -- 连接redis;两个参数分别是IP以及端口号
    local ok, err = red:connect("xxx.xxx.xxx.xxx", 6379)
    if not ok thenreturn
    end
    -- 设置连接密码
    red:auth("xxxx")
    -- 切换数据库,不设置,默认是0库
    red:select(1)local json_results={}local request_method = ngx.var.request_method
    if request_method == "GET" thenjson_results["userTag"] = 0local value = cjson.encode(json_results)ngx.say(value) return
    elseif request_method == "POST" thenngx.req.read_body()args= ngx.req.get_body_data()
    endlocal arg=cjson.decode(args)if (type(arg["userIdList"]) == "nil") or (arg["userIdList"] == "") then json_results["userTag"] = 0local value = cjson.encode(json_results)ngx.say(value) return
    endlocal useridList = {}
    -- 设置为pipeline()模式;批量获取value
    red:init_pipeline()
    for k,userid in pairs(arg["userIdList"]) douseridList[k] = useridred:get("userTest_"..userid)
    end
    -- 提交所有的key
    local respTable, err = red:commit_pipeline()  -- local res, err = red:get(userid) 或者这种一次获得一个keyif (not respTable) or  respTable == ngx.null thenjson_results["userTag"] = 0local value = cjson.encode(json_results)ngx.say(value) return
    endlocal i = 0
    local res_userid={}
    -- 对有值的key的处理
    for k, v in pairs(respTable) do  if v ~= ngx.null then res_userid[#res_userid+1] = cjson.decode(v)table.remove(useridList,k-i)i = i + 1end
    end
    -- 对无值的key的处理
    for k,userid in pairs(useridList) dolocal k_v={}k_v["error_code"] = 101k_v["userid"] = useridres_userid[#res_userid+1] = k_v
    endjson_results["userTag"] = res_userid
    local value = cjson.encode(json_results)
    ngx.say(value)
    red:close()

nginx lua读redis相关推荐

  1. Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

    前言:由于公司前几天短信接口被一直攻击,并且攻击者不停变换IP,导致阿里云短信平台上的短信被恶意刷取了几千条,然后在Nginx上对短信接口做了一些限制 临时解决方案: 1.查看Nginx日志发现被攻击 ...

  2. Nginx Lua读取redis 进行权限认证操作

    之前的csdn找不回来了,决定重新注册一个.望支持~~~ 场景:nginx读取redis存储的标识进行重定向或ip拦截 废话不多说,直接lou代码: location /{set $tomcat_ip ...

  3. nginx lua调用redis和mongo

    参考 http://blog.csdn.net/vboy1010/article/details/7892120 http://www.zhangjixuem.com.cn/2014/4/1/0103 ...

  4. nginx+lua+redis实现降级

    前言 商城或web站点的用户访问量出乎意料地增加了很多,超出了系统的负载能力, 系统有些扛不住,继而导致注 册,下单,支付什么的全部在绕圈卡住,继而导致公司业务损失了不少用户和订单.. 一.引子 面对 ...

  5. nginx lua redis 访问频率限制(转)

    1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...

  6. nginx+lua+redis 灰度发布实现方案

    背景: 公司要把现有的某传统项目进行微服务化,拆分后要分批次预发布,实现某部分使用户使用微服务模块,其他用户使用传统项目.待微服务稳定.无bug后全部用户迁移至微服务系统. 以上为背景,实现此方案使用 ...

  7. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  8. nginx+lua+redis deny ip

    2019独角兽企业重金招聘Python工程师标准>>> nginx+lua+redis实现ip黑名单 1.安装LuaJIT LuaJIT LuaJIT即采用C语言写的Lua代码的解释 ...

  9. 利用nginx+lua+redis实现反向代理方法教程

    这篇文章主要给大家介绍了利用nginx+lua+redis实现反向代理方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 前言 最近因为工作需要,要进行IVR的 ...

  10. windows下nginx+lua+redis实现短域名服务

    nginx+lua+redis 环境搭建: 我使用的是大牛 ZhangYichun 提供的集成包快速安装. 非常简单,下载 ngx_openresty,该集成包中有:Nginx,Lua或Luajit, ...

最新文章

  1. Storm构建分布式实时处理应用初探(转)
  2. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy
  3. boost::mpl::inherit_linearly相关用法的测试程序
  4. VTK:图片之RGBToHSI
  5. Nginx解决跨域问题的具体实现
  6. vue 搜索框header_vue项目header模块编写
  7. Teams 的逻辑架构与语音解决方案 - Official Posters Download
  8. 数组/指针,字符数组/字符串/指向字符的指针
  9. 提交表单上传照片预览
  10. 一个最简单的SPRINGMVC示例
  11. Python数据分析案例09——航空公司客户聚类分析
  12. 【论文翻译】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  13. win10计算机全名恢复,详细教您win10强制进入恢复模式方法
  14. 如何在VSCode配置PHP开发环境(详细版)
  15. 在线流程图和思维导图开发技术详解(六)
  16. USB OTG设计 (转)
  17. Msgbox信息提示框
  18. 2023百度统计被人恶意刷广告解决办法
  19. vue样式中背景图片路径_vue-cli3.0全局less样式中该如何正确设置背景图片的路径?...
  20. 程序人生 - 风冷和水冷散热,怎么选?

热门文章

  1. Python实现PDF合并工具(含源码)
  2. 华为社招机考考什么_华为机考一般考什么
  3. 火狐Android 附加组件,Firefox Nightly 隐藏新功能,让 Android 机用上任意桌面端附加组件...
  4. 记录:【DIY】一块SSD拯救了我的笔记本
  5. kettle使用命令行来运行ktr和kjb文件
  6. Hifn容量优化卡成功支持Bull公司备份方案
  7. c语言红酒编程题,C笔试题练习 - linbo5411的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. MySQL原理与实践(二):一条update语句引出MySQL日志系统
  9. msn一直登陆不上,没有办法只好启用meebo!
  10. CVE-2017-12635+12636 复现+反弹shell