序言
- 主从复制简单来说就是把redis_a服务器上的数据复制到redis_b,redis_c,redis_d等等服务器上,前者redis_a称为主节点(master),后 者redis_b,redis_c…等被称为从节点(slave)。master以写为主,slave以读为主。(注:数据的复制是单方向的只能从主节点到从节点,并且一个主节点可以有多个从节点,但是一个从节点只能有一个主节点)
- 为什么要用主从复制:
(1)数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
(2)故障恢复:当主节点出现问题,可以由从节点提供服务,实现了故障的快速恢复
(3)负载均衡:再主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(在写服务的时候应用连接主节点,在读服务的时候应用连接从节点),平均服务器的负载。特别是在写少读多的时候,可以通过多个从节点进行分担读负载,可以大大提高redis服务器的并发量。
(4)高可用(集群)的基石:主从复制还是哨兵和集群能够实施的基础。 - 为什么在企业工程项目中不能仅仅使用一台redis服务器(宕机==gg)?
(1)从结构上来看:单个redis服务器会发生单点故障,并且一台服务器需要处理所有请求负载,压力大
(2)从容量上来看:单个redis服务器内存容量有限(一般单台服务器redis使用内存不应该超过20G)
主从复制环境搭建
由于服务器数量的限制,在这里我就在一台服务器上启动多个redis实例实现主从复制
搭建的环境
==>主:127.0.0.1:6379 ,从(1): 10.1.210.69:6380 ,从(2):10.1.210.69:6381
搭建步骤
(主要分为4步):
(1)将redis.conf文件拷贝三份,分别使用如下名字:redis6379.conf、 redis6380.conf、 redis6381.conf:
[root@izbp19p16mcz7awt4d8kahz twyconfig]# ls
redis.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# cp redis.conf redis6379.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# cp redis.conf redis6380.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# cp redis.conf redis6381.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# ls
redis6379.conf redis6380.conf redis6381.conf redis.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# rm -rf redis.conf
[root@izbp19p16mcz7awt4d8kahz twyconfig]# ls
redis6379.conf redis6380.conf redis6381.conf
(2)修改配置文件