需求描述
有一个项目,面向学校德育评价,打算留一个发布通知的模块,现在拿不准如何设计数据库
个人方案
我个人有预想两种方案去解决
- 在mysql中建一个系统通知表
- 直接存redis中
第一种方案的优点是可以实现数据的持久化,但是对于一些时效性较强的通知【例如系统维护通知等】需要进行额外处理【因为基本上过了时效以后这条记录几乎不会再用到了】
第二种方案的优点是可以比较轻松的处理时效性问题,但是需要考虑数据的持久化【因为需要考虑到服务器重启问题】
想问一下哪种方案更合理一些,需要两种方案结合使用吗
有一个项目,面向学校德育评价,打算留一个发布通知的模块,现在拿不准如何设计数据库
我个人有预想两种方案去解决
第一种方案的优点是可以实现数据的持久化,但是对于一些时效性较强的通知【例如系统维护通知等】需要进行额外处理【因为基本上过了时效以后这条记录几乎不会再用到了】
第二种方案的优点是可以比较轻松的处理时效性问题,但是需要考虑数据的持久化【因为需要考虑到服务器重启问题】
想问一下哪种方案更合理一些,需要两种方案结合使用吗
1 回答821 阅读✓ 已解决
1 回答748 阅读
mysql+redis的方案
把通知和通知对象持久化到MySQL
再把每个用户的通知列表缓存一份到redis,后续有新通知是新增这个列表,客户端每个用户都是通过redis里的缓存拿通知列表和详情
MySQL里的持久化数据是为了方便恢复重建redis缓存