luarocks install hashids
location /test { content_by_lua_block { -- 此處爲僞代碼,須要本身處理,代碼見下面的 ngx.say(hashid) } }
local hashids = require("hashids"); local redis = require "resty.redis" local red = redis:new() local ids= 1; red:set_timeout(1000) -- 1 sec local ok, err = red:connect("127.0.0.1", 6379) if not ok then ngx.say("failed to connect: ", err) return end ids, err = red:incrby("ids", 1) if not ok then ngx.say("failed to set ids: ", err) return end -- ngx.say("set result: ", ok) local ok, err = red:set_keepalive(10000, 100) if not ok then ngx.say("failed to set keepalive: ", err) return end
local h = hashids.new("dalong") hash = h:encode(ids) ngx.say(hash)
local hashids = require("hashids"); local h = hashids.new("dalong") hash = h:decode("y71ZEKxm") print(hash[1])
實際系統若是使用還須要考慮redis 的高可用,安全,以及如何進行數據分析的問題