Я использую redis для хранения хэшей с ~ 100 тыс. Записей на хеш. Я хочу реализовать фильтрацию (фасетирование) записей в заданном хэше. Обратите внимание, что хеш-запись может принадлежать n фильтрам.
После прочтения this и this похоже, что я должен:
Во-первых, верен ли вышеупомянутый подход на высоком уровне?
Предполагая, что подход в порядке, бит, который мне не хватает, - это наиболее эффективная реализация для получения HASH записи? Правильно ли я думаю, что, получив ключи HASH, я должен использовать PIPELINE для постановки в очередь нескольких команд HGETALL, проходящих через каждый ключ HASH? Есть ли лучший подход?
Меня беспокоит использование PIPELINE, потому что я считаю, что он заблокирует всех других клиентов во время обслуживания команды. Я буду листать отфильтрованные результаты с 500 результатами на страницу. Когда несколько клиентов на основе браузера выполняют фильтрацию, не говоря уже о внутренних процессах, которые заполняют SET и HASH, похоже, что существует вероятность большого конфликта, если PIPELINE действительно блокируется. Может ли кто-нибудь высказать свое мнение по этому поводу?
Если это поможет, я использую 2.2.4 redis, predis для веб-клиентов и servicestack для серверной части.
Спасибо, Paul