Существует ли механизм в redis, аналог left join mysql?
Попробую объяснить что требуется:
Есть 2 набора
Первый набор имеет предметы: пиво, мороженное, шоколад
Второй набор имеет дествия: саша пил пиво, саша ел мороженное.
Цель, когда саша к нам обратился, сказать ему что ты уже пил пиво и ел мороженное, но не ел шоколад,. И дать ему шоколадку.
Само собой у нас тысячи предметов, и сотни тысяч действий людей типа саши.
redis - это не реляционная база. => Никаких джоинов нет.
Но ты вполне можешь сам сделать энное количество запросов, если это очень надо.
Но лучше переработать схему данных, чтобы в этом не было нужды.
Если дашь пример случая, где тебе понадобился джоин - дам вариант, как от него можно избавиться
Сотни тысяч записей которые постоянно меняются, и тысячи запросов в секунду к этим данным.
Переработать никак.
Есть грубо говоря 2 таблицы с данными, нужно взять из одной значение и проверить нет ли этого значения во второй. И вывести исключения
Александр, тоесть есть две коллекции и ключ:
1. Нужно по этому ключу взять значение из первой коллекции.
2. Из значения вытащить новый ключ и посмотреть, есть ли значение во второй коллекции?
И так для всех записей из первой коллекции?
Если только для одной, то можно два запроса сделать.
Если для всех, то в принципе можно попробовать также, тк 100к не так уж и много.
Если очень часто, то придётся таки поменять схему - это проблема решаемая, даже если данные меняются очень часто.
Как сказали уже, джойнов нет и не будет. Но во-первых есть пайплайны, которыми можно сильно снизить издержки на RTT, во-вторых есть lua scripting, так что можно вызвать одну функцию на стороне клиента, "сджойнить" через луа на сервере редиса и отдать ответ какой ты хочешь
Но вообще звучит как Проблема XY. Либо редис там не нужен вовсе