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);endngx.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")endlocal res = cache:commit_pipeline()for j=1,#res do ngx.say(res[j])end
6、计算一共有多少页
local totalPage = math.floor((totalRow+pageSize-1)/pageSize)
7、Lua Table 多字段排序
--排列顺序优先级从高到低依次为:--第一:等级由高到低;--第二:稀有度由高到低;--第三:伙伴ID从高到低。local function sort_(a, b) local r local al = tonumber(a.level) local bl = tonumber(b.level) local aq = tonumber(a.data.quality) local bq = tonumber(b.data.quality) local aid = tonumber(a.pid) local bid = tonumber(b.pid) if al == bl then if aq == bq then r = aid > bid else r = aq > bq end else r = al > bl end return rendtable.sort(tableName,sort_)
8、四舍五入小数点保留2位
local function keepTwoDecimalPlaces(decimal) decimal = math.floor((decimal * 100)+0.5)*0.01 return decimal endngx.say(keepTwoDecimalPlaces(1.369))