DEV: Implement multiple keys support for DiscourseRedis#exists.

This commit is contained in:
Guo Xiang Tan
2020-06-01 11:20:20 +08:00
parent 3894555b2e
commit df62407f35
3 changed files with 39 additions and 2 deletions

View File

@ -194,7 +194,7 @@ class DiscourseRedis
end
# Proxy key methods through, but prefix the keys with the namespace
[:append, :blpop, :brpop, :brpoplpush, :decr, :decrby, :exists, :expire, :expireat, :get, :getbit, :getrange, :getset,
[:append, :blpop, :brpop, :brpoplpush, :decr, :decrby, :expire, :expireat, :get, :getbit, :getrange, :getset,
:hdel, :hexists, :hget, :hgetall, :hincrby, :hincrbyfloat, :hkeys, :hlen, :hmget, :hmset, :hset, :hsetnx, :hvals, :incr,
:incrby, :incrbyfloat, :lindex, :linsert, :llen, :lpop, :lpush, :lpushx, :lrange, :lrem, :lset, :ltrim,
:mapped_hmset, :mapped_hmget, :mapped_mget, :mapped_mset, :mapped_msetnx, :move, :mset,
@ -208,6 +208,17 @@ class DiscourseRedis
end
end
# Remove when this has been upstreamed in https://github.com/redis/redis-rb/pull/911
def exists(*keys)
keys.map! { |a| "#{namespace}:#{a}" } if @namespace
DiscourseRedis.ignore_readonly do
@redis._client.call([:exists, *keys]) do |value|
value > 0
end
end
end
def mget(*args)
args.map! { |a| "#{namespace}:#{a}" } if @namespace
DiscourseRedis.ignore_readonly { @redis.mget(*args) }