nginx lua读redis
- 国内企业使用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相关推荐
- Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP
前言:由于公司前几天短信接口被一直攻击,并且攻击者不停变换IP,导致阿里云短信平台上的短信被恶意刷取了几千条,然后在Nginx上对短信接口做了一些限制 临时解决方案: 1.查看Nginx日志发现被攻击 ...
- Nginx Lua读取redis 进行权限认证操作
之前的csdn找不回来了,决定重新注册一个.望支持~~~ 场景:nginx读取redis存储的标识进行重定向或ip拦截 废话不多说,直接lou代码: location /{set $tomcat_ip ...
- nginx lua调用redis和mongo
参考 http://blog.csdn.net/vboy1010/article/details/7892120 http://www.zhangjixuem.com.cn/2014/4/1/0103 ...
- nginx+lua+redis实现降级
前言 商城或web站点的用户访问量出乎意料地增加了很多,超出了系统的负载能力, 系统有些扛不住,继而导致注 册,下单,支付什么的全部在绕圈卡住,继而导致公司业务损失了不少用户和订单.. 一.引子 面对 ...
- nginx lua redis 访问频率限制(转)
1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...
- nginx+lua+redis 灰度发布实现方案
背景: 公司要把现有的某传统项目进行微服务化,拆分后要分批次预发布,实现某部分使用户使用微服务模块,其他用户使用传统项目.待微服务稳定.无bug后全部用户迁移至微服务系统. 以上为背景,实现此方案使用 ...
- Nginx+Lua+Redis 对请求进行限制
Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...
- nginx+lua+redis deny ip
2019独角兽企业重金招聘Python工程师标准>>> nginx+lua+redis实现ip黑名单 1.安装LuaJIT LuaJIT LuaJIT即采用C语言写的Lua代码的解释 ...
- 利用nginx+lua+redis实现反向代理方法教程
这篇文章主要给大家介绍了利用nginx+lua+redis实现反向代理方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 前言 最近因为工作需要,要进行IVR的 ...
- windows下nginx+lua+redis实现短域名服务
nginx+lua+redis 环境搭建: 我使用的是大牛 ZhangYichun 提供的集成包快速安装. 非常简单,下载 ngx_openresty,该集成包中有:Nginx,Lua或Luajit, ...
最新文章
- Storm构建分布式实时处理应用初探(转)
- 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy
- boost::mpl::inherit_linearly相关用法的测试程序
- VTK:图片之RGBToHSI
- Nginx解决跨域问题的具体实现
- vue 搜索框header_vue项目header模块编写
- Teams 的逻辑架构与语音解决方案 - Official Posters Download
- 数组/指针,字符数组/字符串/指向字符的指针
- 提交表单上传照片预览
- 一个最简单的SPRINGMVC示例
- Python数据分析案例09——航空公司客户聚类分析
- 【论文翻译】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
- win10计算机全名恢复,详细教您win10强制进入恢复模式方法
- 如何在VSCode配置PHP开发环境(详细版)
- 在线流程图和思维导图开发技术详解(六)
- USB OTG设计 (转)
- Msgbox信息提示框
- 2023百度统计被人恶意刷广告解决办法
- vue样式中背景图片路径_vue-cli3.0全局less样式中该如何正确设置背景图片的路径?...
- 程序人生 - 风冷和水冷散热,怎么选?
热门文章
- Python实现PDF合并工具(含源码)
- 华为社招机考考什么_华为机考一般考什么
- 火狐Android 附加组件,Firefox Nightly 隐藏新功能,让 Android 机用上任意桌面端附加组件...
- 记录:【DIY】一块SSD拯救了我的笔记本
- kettle使用命令行来运行ktr和kjb文件
- Hifn容量优化卡成功支持Bull公司备份方案
- c语言红酒编程题,C笔试题练习 - linbo5411的个人空间 - OSCHINA - 中文开源技术交流社区...
- MySQL原理与实践(二):一条update语句引出MySQL日志系统
- msn一直登陆不上,没有办法只好启用meebo!
- CVE-2017-12635+12636 复现+反弹shell