mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #32573 from chloerei/fix-redis-store-clear-namespace
Fix redis store clear keys outside the namespace
This commit is contained in:
commit
d472229f1f
2 changed files with 19 additions and 1 deletions
|
@ -286,7 +286,7 @@ module ActiveSupport
|
|||
# Failsafe: Raises errors.
|
||||
def clear(options = nil)
|
||||
failsafe :clear do
|
||||
if namespace = merged_options(options)[namespace]
|
||||
if namespace = merged_options(options)[:namespace]
|
||||
delete_matched "*", namespace: namespace
|
||||
else
|
||||
redis.with { |c| c.flushdb }
|
||||
|
|
|
@ -221,4 +221,22 @@ module ActiveSupport::Cache::RedisCacheStoreTests
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ClearTest < StoreTest
|
||||
test "clear all cache key" do
|
||||
@cache.write("foo", "bar")
|
||||
@cache.write("fu", "baz")
|
||||
@cache.clear
|
||||
assert !@cache.exist?("foo")
|
||||
assert !@cache.exist?("fu")
|
||||
end
|
||||
|
||||
test "only clear namespace cache key" do
|
||||
@cache.write("foo", "bar")
|
||||
@cache.redis.set("fu", "baz")
|
||||
@cache.clear
|
||||
assert !@cache.exist?("foo")
|
||||
assert @cache.redis.exists("fu")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue