Lua引用模块与包点击查看菜鸟教程
简单配置如下
#LUA_PATH # 文件路径以 ";" 号分隔,最后的 2 个 ";;" 表示新加的路径后面加上原来的默认路径,路径可以自定义的,我这里是把lua模块放到了"/data/www/code/lua/util/"下面。 export LUA_PATH="/data/www/code/lua/util/?.lua;;" # 更新环境变量参数,使之立即生效 source ~/.profile
- 假如你已经配置好了lua模块默认路径
调用
-- require("<模块名>") -- 或者 -- require "<模块名>" -- 我这里以加载字符串分割为例演示 local strsplit = require("strsplit"); local ta = strsplit.split("122sd_lsdjfdh_sasasa_rrt", "_"); print("类型:" .. type(ta)); for k, v in ipairs(ta) do print("键:" .. k, "值:" .. v); end -- 运行lua run.lua 输出结果 -- 类型:table -- 键:1 值:122sd -- 键:2 值:lsdjfdh -- 键:3 值:sasasa -- 键:4 值:rrt
字符串分割(strsplit.lua)
local _M = {} function _M.split(str, delim) if type(delim) ~= "string" or string.len(delim) <= 0 then return end local start = 1 local tab = {} while true do local pos = string.find(str, delim, start, true) if not pos then break end table.insert(tab, string.sub(str, start, pos - 1)) start = pos + string.len(delim) end table.insert(tab, string.sub(str, start)) return tab end return _M
nginx 共享缓存get以及set
openResty的nginx.conf配置
worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { # 设置纯 Lua 扩展库的搜寻路径(';;' 是默认路径) lua_package_path "/data/www/code/nginx+lua/config/lua_p/?.lua;;"; # 设置 C 编写的 Lua 扩展模块的搜寻路径(也可以用 ';;') lua_package_cpath "/data/www/code/nginx+lua/config/lua_p_c/?.so;;"; # 内存共享 缓存大小5m lua_shared_dict my_limit_store 5m; server { listen 8080; location /share { lua_code_cache off; content_by_lua_file ./config/lua/share.lua; charset utf-8; } } }
ngxshare.lua模块
local _M = {} function _M.shared_dic_get(dic, key) local value = dic:get(key); return value; end function _M.shared_dic_set(dic, key, value, exptime) if not exptime then exptime = 0; end local succ, err = dic:set(key, value, exptime); return succ; end return _M
share.lua文件
-- 引入模块 local ngxshare = require("resty.ngxshare"); -- 设置参数 ngxshare.shared_dic_set(ngx.shared.my_limit_store, 'limit_store', 1, 0); -- 获取参数 ngx.say(ngxshare.shared_dic_get(ngx.shared.my_limit_store, 'limit_store')); -- 测试 http://192.168.56.2:8080/share # 1
Comment here is closed