虽然Redis提供了持久化的功能保证了在Redis服务器重启时数据不会丢失,但保存在磁盘上的数据文件依旧有可能因为磁盘损坏而丢失,所以Redis提供了复制功能来在多台Redis服务器上同步数据,这样即使有一台Redis服务器保存数据的文件损坏,数据也不会丢失。
同步后的Redis数据库分为两类:主数据库(master),从数据库(slave),它们结构如下图:
主从是相对的,对于A、B、C三个数据库来说,A是主数据库,而B、C是从数据库,而对于B、D、E来说,B又是主数据库,D、E是从数据库。主从数据库数据的流向只能顺着箭头方向,例如,在A中执行set username yamikaze,那么在B、C、D等数据库中使用get username都能得到数据,而在B中使用set age 11,在D、E、F中能得到数据,但在A、C中返回是(nil)。
同时在A中set username后,从数据库只能查看,而不能修改。最后,从数据库只能与一个主数据库想