getRedisMixed.lua 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ---
  2. --- Generated by EmmyLua(https://github.com/EmmyLua)
  3. --- Created by fanfan.
  4. --- DateTime: 2020-05-27 9:22
  5. ---
  6. local key=KEYS
  7. local portalKeys = {}
  8. local sessionKeys = {}
  9. local size = #key
  10. local result = {}
  11. if size == 0 then
  12. return ''
  13. end
  14. for i = 1, size do
  15. if string.find(key[i],"portal") then
  16. table.insert(portalKeys,key[i])
  17. elseif string.find(key[i],"shiro:session") then
  18. table.insert(sessionKeys,key[i])
  19. end
  20. end
  21. local portalKeysSize = #portalKeys
  22. local sessionKeysSize = #sessionKeys
  23. local regx = "(.+token%p)(.+)"
  24. --local pi = "portal:user:login_token_a8b0b971-77c2-4e00-b994-86e8529b6d22"
  25. --local name = string.gsub(pi,"(.+token%p)(.+)","%2")
  26. -- 遍历数组
  27. local function IsInTable(value, tbl)
  28. for k,v in ipairs(tbl) do
  29. if v == value then
  30. return true;
  31. end
  32. end
  33. return false;
  34. end
  35. local function square (List1,List2,bool)
  36. local Len = #List1;
  37. local pk = "portal:user:login_token_"
  38. local sk = "shiro:session:login_token_"
  39. for i = 1, Len do
  40. local si = ""
  41. local token = string.gsub(tostring(List1[i]),regx,"%2")
  42. if bool then
  43. si = sk..token
  44. else
  45. si = pk..token
  46. end
  47. print("si........."..si);
  48. if IsInTable(si,List2) then
  49. table.insert(result,pk..token)
  50. end
  51. end
  52. end
  53. if portalKeysSize <= sessionKeysSize then
  54. square(portalKeys,sessionKeys,true)
  55. else
  56. square(sessionKeys,portalKeys,false)
  57. end
  58. local resultSize = #result
  59. --if resultSize then
  60. -- for i = 1, resultSize do
  61. -- print(result[i])
  62. -- end
  63. --end
  64. if (resultSize == 0) then
  65. return ''
  66. else
  67. return result;
  68. end