From e95d2a0ee5e7d5e00deef49e9297664194c72d08 Mon Sep 17 00:00:00 2001 From: wanglei <34475144@qq.com> Date: Sat, 8 Nov 2025 15:10:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8=E7=AE=A1=E9=81=93=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=AD=98=E5=82=A8=E5=88=B0redis=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/init.lua | 11 +++++++---- src/util/permissionfilter.lua | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/init.lua b/src/init.lua index c70ceda..2a38197 100644 --- a/src/init.lua +++ b/src/init.lua @@ -53,6 +53,8 @@ local function handler() --获取数据表中的记录数 local code, res = roleDao:getAllSystemRoles() if res == nil then return end + --管道进行redis处理 + red:init_pipeline() --读取角色id和角色名称 for _, row in pairs(res) do local id = row.id --:1 @@ -65,12 +67,13 @@ local function handler() local perm = ret.permission_code local key = name.."-"..perm --role_name-permission_code 组成key进行验证 存储到redis中 - local ok, err = red:set(key, "1") - if not ok then - ngx.log(ngx.ERR, "redis failed to set key: "..err) - end + red:set(key, "1") end end + local results, err = red:commit_pipeline() + if not results then + ngx.log(ngx.ERR, "init failed to commit the pipelined requests: ", err) + end --关闭redis连接 red:close() diff --git a/src/util/permissionfilter.lua b/src/util/permissionfilter.lua index ef4a66a..d2b12b6 100644 --- a/src/util/permissionfilter.lua +++ b/src/util/permissionfilter.lua @@ -56,13 +56,13 @@ function _M:getRolePermissions(role_name) return allPermissions end --获取redis中所有匹配的数据内容 - local prefix = role_name.."-" + local pattern = role_name.."-*" local cursor = "0" - local result = red:call('SCAN', cursor, 'MATCH', prefix .. '*', 'COUNT') - if result == false then + local result, err = red:scan(cursor, 'MATCH', pattern) + if not result then return allPermissions end - --cursor = result[1] + cursor = result[1] for _, key in ipairs(result[2]) do table.insert(allPermissions, key) end