aboutsummaryrefslogtreecommitdiff
path: root/priv/lua/redis_sm.lua
blob: 2624fef16dcd94cf6cfbb8d400c3ff3776f543f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
redis.replicate_commands()
local cursor = redis.call('GET', KEYS[3]) or 0
local scan_result = redis.call('HSCAN', KEYS[1], cursor, 'COUNT', ARGV[1])
local newcursor = scan_result[1]
local cursor = redis.call('SET', KEYS[3], newcursor)
redis.call('EXPIRE', KEYS[3], 30)
for key,value in ipairs(scan_result[2]) do
   local uskey, sidkey = string.match(value, '(.*)||(.*)')
   if uskey and sidkey then
      redis.call('HDEL', uskey, sidkey)
      redis.call('HDEL', KEYS[1], value)
   else
      redis.call('HDEL', KEYS[2], value)
   end
end
return newcursor