Skip to content

Commit

Permalink
feat: single DEL call
Browse files Browse the repository at this point in the history
  • Loading branch information
perrin4869 committed Apr 8, 2024
1 parent e541323 commit 66aca5d
Showing 1 changed file with 13 additions and 19 deletions.
32 changes: 13 additions & 19 deletions src/pdel.lua
@@ -1,25 +1,19 @@
--!/usr/bin/env lua

local function deleteKeys (keys)
for i, name in ipairs(keys) do
redis.call("DEL", name)
end
end

if type(redis.replicate_commands) == 'function' and redis.replicate_commands() then -- Redis 3.2+
local count = 0
local cursor = "0"
local keys
if type(redis.replicate_commands) == "function" and redis.replicate_commands() then -- Redis 3.2+
local count = 0
local cursor = "0"
local keys

repeat
cursor, keys = unpack(redis.call("SCAN", cursor, "MATCH", KEYS[1]))
count = count + #keys
deleteKeys(keys)
until cursor == "0"
repeat
cursor, keys = unpack(redis.call("SCAN", cursor, "MATCH", KEYS[1]))
count = count + #keys
redis.call("DEL", unpack(keys))
until cursor == "0"

return count
return count
else
local keys = redis.call("KEYS", KEYS[1])
deleteKeys(keys)
return #keys
local keys = redis.call("KEYS", KEYS[1])
redis.call("DEL", unpack(keys))
return #keys
end

0 comments on commit 66aca5d

Please sign in to comment.