本文共 777 字,大约阅读时间需要 2 分钟。
并发不高的情况: 读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取; 写: 写mysql->成功,再写redis; 并发高的情况: 读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取; 写:异步话,先写入redis的缓存,就直接返回;定期或特定动作将数据保存到mysql,可以做到多次更新,一次保存; 若mysql更新失败,则需要及时清除缓存及同步redis主键 阅读次数、限制用户操作次数等这种数据可以使用第二种 分布式 redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。 这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave提供检索服务。这样可以有效减少单个机器的并发访问数量 读写分离模型 通过增加Slave DB的数量,读的性能可以线性增长。为了避免Master DB的单点故障,集群一般都会采用两台Master DB做双机热备,所以整个集群的读和写的可用性都非常高。 读写分离架构的缺陷在于,不管是Master还是Slave,每个节点都必须保存完整的数据,如果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力,而且对于Write-intensive类型的应用,读写分离架构并不适合。 读写分离模型 数据分片模型 为了解决读写分离模型的缺陷,可以将数据分片模型应用进来。 可以将每个节点看成都是独立的master,然后通过业务实现数据分片。结合上面两种模型,可以将每个master设计成由一个master和多个slave组成的模型。
基础数据可以放到缓存redis中,这样减少表的关联;