Skip to content

Commit 476069f

Browse files
authored
Delete list of keys in batch (#90)
* Kredis::Migration#delete_all array of keys * Kredis::Migration#delete_all array of keys * Kredis::Migration#delete_all array of keys
1 parent f164b42 commit 476069f

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

lib/kredis/migration.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,15 @@ def migrate(from:, to:, pipeline: nil)
3030
end
3131
end
3232

33-
def delete_all(key_pattern)
34-
each_key_batch_matching(key_pattern) do |keys, pipeline|
35-
pipeline.del *keys
33+
def delete_all(*key_patterns)
34+
log_migration "DELETE ALL #{key_patterns.inspect}" do
35+
if key_patterns.length > 1
36+
@redis.del *key_patterns
37+
else
38+
each_key_batch_matching(key_patterns.first) do |keys, pipeline|
39+
pipeline.del *keys
40+
end
41+
end
3642
end
3743
end
3844

test/migration_test.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,19 @@ class MigrationTest < ActiveSupport::TestCase
5151
end
5252
end
5353

54-
test "delete_all" do
54+
test "delete_all with pattern" do
5555
3.times { |index| Kredis.proxy("mykey:#{index}").set "hello there #{index}" }
5656

5757
Kredis::Migration.delete_all "mykey:*"
5858

5959
3.times { |index| assert_nil Kredis.proxy("mykey:#{index}").get }
6060
end
61+
62+
test "delete_all with keys" do
63+
3.times { |index| Kredis.proxy("mykey:#{index}").set "hello there #{index}" }
64+
65+
Kredis::Migration.delete_all *3.times.map { |index| "mykey:#{index}" }
66+
67+
3.times { |index| assert_nil Kredis.proxy("mykey:#{index}").get }
68+
end
6169
end

0 commit comments

Comments
 (0)