Как получить пересечение 2 комплектов в Redis? - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть 2 набора в Redis, один из которых сделан hmset:

HMSET cars:1 make Ferrari model 458 color red topSpeed 202mph

, затем:

SADD make:Ferrari 1

и когда я ввожу эту команду:

SMEMBERS make:Ferrari

Я получаю «1», затем добавляю: geoadd carLoc 13.361389 38.115556 1

Я пытаюсь получить пересечение этих двух наборов с помощью этой команды: georadius carLoc 13.361389 38.115556 1 store key1 Я фильтрую первый набор и сохраняю в другом наборе, но яне могу найти способ сохранить результат SMEMBERS make:Ferrari в другом наборе и получить их пересечение.Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 15 апреля 2019

Если проблема в том, что вы хотите найти пересечение множества и zset, тогда нет никакого собственного способа сделать это. У меня есть два варианта, которые я могу сказать:

  1. Преобразовать make:Ferrari в zset, выбрав произвольные веса
  2. Создайте скрипт lua для этого программно

В общем, # 1 было бы легче сделать, если бы вообще было возможно преобразовать этот ключ в zset. Если это нелегко сделать, подумайте о создании двух ключей: один - набор make:Ferrari, а другой - zset z:make:Ferrari и используйте второй для пересечения.

...