Nginx+Lua 积累

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
简介: 1、解析16进制编码的中文参数 local encodeStr = "%E6%B0%94" local decodeStr = ""; for i = 2, #encodeStr - 1, 3 do local num = encodeStr:sub(i, i + 1); ...

1、解析16进制编码的中文参数

local encodeStr = "%E6%B0%94"
local decodeStr = "";
for i = 2, #encodeStr - 1, 3 do
    local num = encodeStr:sub(i, i + 1);
    num = tonumber(num, 16);
    decodeStr = decodeStr .. string.char(num);
end
ngx.say(decodeStr)

2、类似replace

local str = "a1b1c1d"
local result = string.gsub(str,"1","2")   --将1替换成2

local str = "A1B1C1"
local result = string.gsub(str,"1","0",2) --输出的结果为:A0B0C1

3、直连mysql

local mysql = require "resty.mysql"
local db = mysql:new()
db:connect{
    host = "10.10.3.218",
    port = 3306,
    database = "test_db",
    user = "root",
    password = "123456",
    max_packet_size = 1024*1024
}
local result = db:query("SELECT ID,NAME FROM TABLE")
ngx.say(result[1]["ID"])
ngx.say(result[1]["NAME"])

4、直接Redis

local redis = require "resty.redis"
local cache = redis.new()
cache.connect(cache,"10.10.3.208", "6379")
local result = cache:get("key")

5、使用管道

local redis = require "resty.redis"
local cache = redis.new()
cache.connect(cache,"10.10.3.208", "6379")
cache:init_pipeline()
for i=1,10 do
    cache:get("key")
end
local res = cache:commit_pipeline()
for j=1,#res do
    ngx.say(res[j])
end

6、计算一共有多少页

local totalPage = math.floor((totalRow+pageSize-1)/pageSize)

 

 

 

 

 

相关文章
|
存储 缓存 Java
Openresty(lua+nginx)-Guava-Redis做多级缓存
Openresty(lua+nginx)-Guava-Redis做多级缓存
361 1
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(下)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
404 0
|
消息中间件 NoSQL 关系型数据库
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
538 0
|
应用服务中间件 nginx
[nginx]lua读取请求体
[nginx]lua读取请求体
359 0
|
缓存 应用服务中间件 nginx
[nginx]lua控制响应头
[nginx]lua控制响应头
468 0
|
应用服务中间件 API nginx
[nginx]lua控制请求头
[nginx]lua控制请求头
461 0
|
NoSQL 关系型数据库 应用服务中间件
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
544 0
分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。
|
缓存 NoSQL 应用服务中间件
基于Nginx+Lua优化多级缓存架构
基于Nginx+Lua优化多级缓存架构
494 0
|
负载均衡 应用服务中间件 测试技术
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(上)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
852 0