diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-07-14 17:53:00 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-07-14 17:53:00 +0300 |
commit | 420e05fa0d5a159194ce3455d4ed2aa4f2256591 (patch) | |
tree | 0769759cf37018190d22e69f2eaa9ca0fc0a5575 /priv/lua/redis_sm.lua | |
parent | Merge pull request #2525 from satish-olx/master (diff) |
Clean up contributed code for Redis SM
Diffstat (limited to 'priv/lua/redis_sm.lua')
-rw-r--r-- | priv/lua/redis_sm.lua | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/priv/lua/redis_sm.lua b/priv/lua/redis_sm.lua new file mode 100644 index 00000000..2624fef1 --- /dev/null +++ b/priv/lua/redis_sm.lua @@ -0,0 +1,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 |