В моем текущем проекте у меня есть PostgreSQL в качестве моей главной БД, а Redis в качестве подчиненного устройства, например, когда какой-либо пользователь добавляет другого в качестве друга, сначала отношения будут сохранены в PostgreSQL, а затем список друзей в Redis будет обновляться. Когда запрашивается список друзей какого-либо пользователя, он будет извлечен из Redis вместо PostgreSQL.
Вопрос в следующем: когда я обновляю список друзей в Redis, должен ли я получить свежую копию из PostgreSQL и заменить старый список в Redis новым, или я должен сохранить старый список и просто SADD идентификатор пользователя в список? Последнее, конечно, лучше для производительности, но интуитивно первое лучше справляется с сохранением целостности данных? А если используется что-то вроде Celery, стоит ли рисковать вторым методом?