[英]How can I get all matched keys from redis using ruby on rails
How Can I get all matched keys from list of keys stored in redis using Ruby on rails. 如何使用Ruby on Rails从Redis中存储的密钥列表中获取所有匹配的密钥。 I am using Ruby 2.5.1 version. 我正在使用Ruby 2.5.1版本。
I used SCAN to query matched keys, but it returns 2 values always instead of 5. It returns all when I pass count. 我使用SCAN来查询匹配的键,但是它总是返回2个值而不是5个值。 So How can I pass count in Ruby On Rails code? 那么如何在Ruby On Rails代码中传递计数?
Without count return 2 value: 不计算返回值2:
127.0.0.1:6379> SCAN 100 match *sa*
1) "sasikala (6965)"
2) "Zupaen sasi (6961)"
With count return all (5) value: 用count返回所有(5)值:
127.0.0.1:6379> SCAN 100 match *sa* count 100
1) "Sasai (6965)"
2) "Zupaen sasi (6961)"
3) "Rosan (7000)"
4) "Alisa (2363)"
5) "Carissa (4455)"
Ruby on rails code: Ruby on Rails代码:
keys = redis.scan(0, :match => '*' + name + '*')
Kindly provide your thoughts on this. 请提供您对此的想法。
Assuming you use official redis-rb
to handle redis connection, their tests contain the answer on your question: 假设您使用官方的redis-rb
处理redis连接,那么他们的测试将包含您问题的答案 :
loop.inject([0, []]) do |(cursor, keys), _|
cursor, new_keys = redis.scan(cursor, match: '{key}*')
keys << new_keys
break keys if cursor == '0'
[cursor, keys]
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.