本节我们搭建Redis主从复制和哨兵模式集群,集群的好处是把数据分散不不同的服务器上,解决网站中的很多高并发,高负载等问题,很好的提高网站的性能,也能解决mysql的数据读写问题,所以我们搭建集群非常有必要,而且在大网站中都是必须上的技能-简称“ 缓存必杀技 ”。

下面我们开始做好准备工作:

一、环境和版本


准备三台Linux服务器centos7系统(本地虚拟机-土豪可以买云上服务器)

192.168.1.101
 
   
  
192.168.1.102
 
   
  
192.168.1.103
 
   
  
Redis:redis-6.0.3(最新版本)



二、Redis安装与启动(大家按步执行 )

1、下载redis(官方安装方法)



centos 文件远程复制 centos 复制文件夹_centos 文件远程复制

[root@localhost local]# cd /usr/local/src
 
   
  
[root@localhost src]# wget http://download.redis.io/releases/redis-6.0.3.tar.gz
 
   
  
2、安装解压编译安装[root@localhost src]# tar xzf redis-6.0.3.tar.gz
 
   
  
[root@localhost src]# cd redis-6.0.3
 
   
  
[root@localhost redis-6.0.3]# make
 
   
  
3、错误解决(出现以下错误)


centos 文件远程复制 centos 复制文件夹_laravel redis_02

a、执行:yum -y install gcc-c++ 
  
yum -y install gcc-c++

centos 文件远程复制 centos 复制文件夹_centos 文件远程复制_03

b、清除编译文件:make clean


make clean


c、然后执行:make


make



d、如果还报这个错误,删除redis文件夹,重新解压。


centos 文件远程复制 centos 复制文件夹_laravel redis_02


e、命令:

rm -rf redis-6.0.3
 
   
  
cd  redis-6.0.3
 
   
  
make CFLAGS="-march=x86-64"  
 
   
  
#执行这个命令才行,不然也是安装失败,如果你们直接make可以编译完成就无需执行这个命令。



4、启动服务

[root@localhost redis-6.0.3]# cd  src
 
   
  
[root@localhost src]# redis-server redis.conf


5、配置进程启动,修改/usr/local/src/redis.conf

daemonize yes




6、进程查看关闭

[root@localhost redis-6.0.3]# ./src/redis-server redis.conf[root@localhost redis-6.0.3]# ps -aux | grep redis
 
   
  
[root@localhost redis-6.0.3]# kill -9 840




三、配置开机启动

1、相关配置

[root@localhost init.d]# cd /etc
 
   
  
[root@localhost etc]# mkdir redis
 
   
  
[root@localhost etc]# cp /usr/local/src/redis-6.0.3/redis.conf  /etc/redis/6379.conf
 
   
  
[root@localhost etc]# cd redis/
 
   
  
[root@localhost redis]# cp /usr/local/src/redis-6.0.3 /utils/redis_init_script /etc/init.d/redisd
 
   
  
[root@localhost redis]# chkconfig redisd on #开机启动命令



2、服务启动关闭

[root@localhost redis]# service redisd start  #开启[root@localhost redis]# service redisd stop   #关闭


3、重启虚拟机查看Redis状态

[root@localhost ~]# ps -aux | grep redis
root  21907  0.0  0.4 145256 4504 pts/0 Sl+ 15:51  0:00 redis-server *:6379
 
   
  
root  21980  0.0  0.0 110228  888 pts/1 R+ 15:55  0:00 grep --color redis



四、解决客户端连接问题


关闭防火墙,或者开放6379端口

firewalld的基本使用
启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用 :systemctl disable firewalld
开机启用 :systemctl enable firewalld



修改redis.conf 配置

注释掉:# bind 127.0.0.1
 
   
  
修改保护模式:protected-mode no


备注:以上配置只演示了一台服务器安装redis,其他2台按同样方法进行安装,先把redis服务安装完成,再进入以下哨兵模式配置。

五、sentinel哨兵模式

centos 文件远程复制 centos 复制文件夹_centos 文件远程复制_05

1、基础配置

192.168.1.101 主服务
 
   
  
192.168.1.102 从服务
 
   
  
192.168.1.103 从服务




2、配置主服务 redis.conf

requirepass 123456
 
   
  
masterauth  123456




3、配置从服务 redis.conf

requirepass 123456
 
   
  
slaveof 192.168.1.101 6379
 
   
  
masterauth 123456




centos 文件远程复制 centos 复制文件夹_redis哨兵主从不切换_06

4、配置sentinel.conf

protected-mode no
# sentinel monitor代表监控
# mymaster代表服务器的名称,可以自定义(不可重复即可),
# 192.168.1.101 代表监控的主服务器,6379代表端口,
# 2 标识 >=2 哨兵认为主服务器不可用,执行failover操作。
sentinel monitor mymaster 192.168.1.101 6379 2



sentinel auth-pass mymaster 123456


5、启动服务(先主服务,后从服务)

[root@localhost src]#./redis-server ../redis.conf
 
   
  
[root@localhost src]#./redis-server ../sentinel.conf --sentinel




centos 文件远程复制 centos 复制文件夹_redis哨兵主从不切换_07


好了,主从复制集群搭建完毕!