Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Redis中使用特定模式获取密钥范围的最佳方法_Ruby On Rails_Ruby_Redis - Fatal编程技术网

Ruby on rails 在Redis中使用特定模式获取密钥范围的最佳方法

Ruby on rails 在Redis中使用特定模式获取密钥范围的最佳方法,ruby-on-rails,ruby,redis,Ruby On Rails,Ruby,Redis,我与Redis合作,但我需要从Redis获得钥匙的最佳方式 我需要按日期范围(2020-06-01至2020-06-20)搜索每个公司的id(id是唯一的) 钥匙示例统计:公司:2:日期:2020-06-13 我想为了解决这个问题,我每天都会拿到钥匙,但如果需要200把钥匙的话 这需要很多次,在显示用户之前,我做了一些有价值的操作 我尝试使用scan和键 环境Ruby 2.7.0,Ruby on Rails 6.0.3Redis要节省往返Redis的时间,您可以使用mget一次提取多个密钥,如果

我与Redis合作,但我需要从Redis获得钥匙的最佳方式

我需要按日期范围(2020-06-01至2020-06-20)搜索每个公司的id(id是唯一的)

钥匙示例
统计:公司:2:日期:2020-06-13

我想为了解决这个问题,我每天都会拿到钥匙,但如果需要200把钥匙的话

这需要很多次,在显示用户之前,我做了一些有价值的操作

我尝试使用
scan


环境
Ruby 2.7.0
Ruby on Rails 6.0.3
Redis
要节省往返Redis的时间,您可以使用
mget
一次提取多个密钥,如果只有大约200个密钥,您甚至可以在一次调用中提取:

需要“日期”
公司标识=[:a,:b,:c]
今天
#生成您的密钥:
keys=company|uids.map{cid}(1..20).map{day}.plant(1).map{cid,day}“stat:company:{cid}日期:{day-day}”
hash=keys.zip(redis.mget(*keys)).to_h