Привет!
Есть несколько Asp.Net Web.Api серверов, у каждого из которых свои залогиненные пользователи, которые могут фолловить друг друга. Рядом с каждым же сервером стоит свой Redis, в котором лежат профили залогиненных пользователей (возможно, не всех) и еще рядом с каждым редисом есть по воркеру, который получает по рэббиту задания на обновление кешиков, лежащих в данном редисе.
В монге у каждого пользователя хранится полная инфа по которой можно построить сущность в редисе, на случай если ее там нет. Но лазить туда каждый раз не хочется.
Итак, у какого то пользователя есть миллион фолловеров и он решил чего-то там сделать, что должно появиться у всех залогиненных фоловеров в фиде. Когда воркер получает таск, ему нужно либо
- Пройти по всем сущностям в редисе и посмотреть там, есть ли у каждой в друзьях чел, который сгенерил событие. Если таких на данном сервере 50-100 000, то это долговато
- Достать из монги список фолловеров и посчитать пересечение с данными из редиса. Это тоже медленно, т.к. одних айдишек будет мегабайт 16
И так и так получается медленно. Может в редисе есть возможность быстро найти те сущности, у которых какое то поле равно заданному? Нужны идеи