Немного более развернуто напишу вопрос...
Допустим, у нас есть модель пользователя User. В БД хранятся идентификатор пользователя (userId) и его имя (username). В redis хранится информация по последней активности пользователя (lastActivityOn). Наша задача получить модель пользователя, у которой заполнены все эти поля (либо будут заполнены по-требованию).
Самый простой вариант - декомпозировать модель пользователя на 2 модели: User, UserActivity. В этом случае у нас будет 2 репозитория - один для работы с БД UserRepository, другой для работы с Redis UserActivityRepository. Но это не очень удобно, т.к. скорее всего придется делать еще один общий репозиторий, который бы умел работать с этими двумя и умел заполнять модель. Еще как вариант можно научить саму модель User делать подгрузку данных из UserActivityRepository, но в этом случае мы будем мешать модель со способом ее хранения, что не очень хорошо.
Ну или сделать один UserRepository и научить его работать с UserStorage и UserActivityStorage.
Какая структура была бы наиболее практичной с вашей точки зрения?