如果redis中保存数据,数据库中不家必要存一份吗?

比如,用户的上下级关系,我在redis中保存了一份,还有必要在数据库中保存吗?
前提是redis做持久化

阅读 6k
3 个回答

保存。

你的redis的持久化是append only还是snapshot,如果是snapshot会丢数据的,是append only性能一般。redis的最佳使用场景还是缓存,用来做持久化数据存储不是不可以,但既然有数据库这种专业人士在,干嘛用redis呢

像用户上下级关系这种个人感觉还是很关键的,而且可能跟用户表本身会有关联,所以最好存在数据库里。为了性能,可以用redis来缓存这些信息。同步有两种方式:

  1. 有改动先插数据库,再插缓存,比较靠谱但性能一般

  2. 有改动先插缓存,批量更新到数据库,靠谱度略差但性能好

这就需要你根据具体场景来选择了

我觉得元数据最好在数据库有保留,每次系统启动将其加载到redis中,如果关系有变更,可以让数据库和redis同步。

如果是redis做了持久化,那么把redis自己的持久化数据备份就行了,不用存储到MySQL里面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进