Как я могу получить все соответствующие ключи от Redis, используя ruby ​​на рельсах - PullRequest
0 голосов
/ 07 июня 2019

Как я могу получить все совпадающие ключи из списка ключей, хранящихся в Redis, используя Ruby on rails.Я использую версию Ruby 2.5.1.

Я использовал SCAN для запроса соответствующих ключей, но он всегда возвращает 2 значения вместо 5. Он возвращает все, когда я передаю count.Итак, как я могу передать счет в коде Ruby On Rails?

Без значения возврата счетчика 2:

  127.0.0.1:6379> SCAN 100 match *sa*
       1) "sasikala (6965)"
       2) "Zupaen sasi (6961)"

При значении счетчика вернуть все (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)"

Рубин на рельсах Код:

keys = redis.scan(0, :match => '*' + name + '*')

Просьба высказать свои мысли по этому поводу.

1 Ответ

1 голос
/ 07 июня 2019

Если вы используете официальные 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...