前言
尽管Redis的性能很好,但是有时候依旧满足不了应用的需要,比如过多的用户进入主页,导致Redis被频繁访问,此时就存在大量的读操作。
对于一些热门网站的某个时刻(比如促销商品的时候)每秒成千上万的请求是司空见惯的,这个时候大量的读操作就会到达Redis服务器,触发许许多多的操作,显然单靠一台Redis服务器是完全不够用的。
一些服务网站对安全性有较高的要求,当主服务器不能正常工作的时候,也需要从服务器代替原来的主服务器,作为灾备,以保证系统可以继续正常的工作。因此更多的时候我们更希望可以读/写分离,读/写分离的前提是读操作远远比写操作频繁得多,如果把数据都存放在多台服务器上那么就可以从多台服务器中读取数据,从而消除了单台服务器的压力,读/写分离的技术己经广泛用于数据库中了。
1. 主从同步概念
互联网系统一般是以主从架构为基础的,大概是:
※多态数据服务器中,只有一台主服务器,而主服务器只负责写入数据,不负责让外部程序读取数据。
※有多台从服务器,从服务器不写入数据,只负责同步主服务器的数据,并让外部程序读取数据。
※主服务器在写入数据后,即刻将写入数据的命令发送给从服务器,从而使得主从数据同步。
※应用程序可以随机读取一台从服务器的数据,即分摊了读数据的压力。
※从服务器不能工作时,整个系统不受影响;主服务器不能工作时,可以方便地在从服务器中选举一台当做主服务器。
主从同步机制示图:
可知,一个主服务器可以拥有多个从服务器,一个从服务器又可以拥有多个从服务器,如此