在我目前的项目中,我有 PostgreSQL 作为我的主数据库,而 Redis 作为一种从属,例如,当一些用户添加另一个作为朋友时,首先将关系存储在 PostgreSQL 中,然后更新 Redis 中的朋友列表. 当请求某个用户的好友列表时,它将被拉出 Redis 而不是 PostgreSQL。
问题是:当我在 Redis 中更新好友列表时,我应该从 PostgreSQL 中获取一份新副本,并用新的替换 Redis 中的旧列表,还是应该保留旧列表并将用户 ID 简单地添加到列表中?后者当然最适合性能,但直观地说,前者在保持数据完整性方面做得更好吗?如果使用像 Celery 这样的东西,第二种方法值得冒险吗?