我使用 Redis,但我需要从 Redis 获取 key 的最佳方式。
我需要按日期范围(2020-06-01 到 2020-06-20)搜索每个 company_id (id 是唯一的)
键示例 stat:company:2:date:2020-06-13
我想解决问题我每天都得到 key ,但如果需要 200 个 key 。
需要很多次,我在显示用户之前做了一些有值(value)的操作。
我尝试使用scan
& keys
环境 Ruby 2.7.0
, Ruby on Rails 6.0.3
Redis
最佳答案
要节省到 Redis 的往返行程,您可以使用 mget
一次获取多个键,如果只有大约 200 个键——您甚至可以一次调用完成:
require 'date'
company_ids = [:a, :b, :c]
today = Date.today
#generate your keys:
keys = company_ids.map{|cid| (1..20).map{|day| [cid, day]} }.flatten(1).map{|cid,day| "stat:company:#{cid}:date:#{today - day}" }
hash = keys.zip(redis.mget(*keys)).to_h
关于ruby-on-rails - 在 Redis 中使用特定模式获取键范围的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62539390/