zoukankan      html  css  js  c++  java
  • Nginx+Lua 积累

    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)

     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 r
    end
    
    table.sort(tableName,sort_)

     8、四舍五入小数点保留2位

    local function keepTwoDecimalPlaces(decimal)
            decimal = math.floor((decimal * 100)+0.5)*0.01       
            return  decimal 
    end
    
    ngx.say(keepTwoDecimalPlaces(1.369))
  • 相关阅读:
    k8s管理pod资源对象(上)
    k8spod资源的基础管理操作
    k8s名称空间资源
    bootstrap表格 之多选数据的获取
    sql server 查询表的创建时间
    C# Bootstrap table之 分页
    C# 基于Bootstrap的三级联动
    C# 后台构造json数据
    C# bootstrap之表格动态绑定值
    C# 文件的一些基本操作
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/3641383.html
Copyright © 2011-2022 走看看