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

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

一、环境和版本

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

192.168.1.101192.168.1.102192.168.1.103Redis:redis-6.0.3(最新版本)

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

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




centos7复制目录到其他目录 centos7 复制文件夹_laravel redis


[root@localhost local]# cd /usr/local/src[root@localhost src]# wget http://download.redis.io/releases/redis-6.0.3.tar.gz


centos7复制目录到其他目录 centos7 复制文件夹_redis哨兵主从不切换_02


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、错误解决(出现以下错误)


centos7复制目录到其他目录 centos7 复制文件夹_redis哨兵主从不切换_03


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


centos7复制目录到其他目录 centos7 复制文件夹_laravel redis_04


b、清除编译文件:make clean

make clean

c、然后执行:make

make

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


centos7复制目录到其他目录 centos7 复制文件夹_cp 复制文件夹_05


e、命令:

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

4、启动服务

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


centos7复制目录到其他目录 centos7 复制文件夹_cp 复制文件夹_06


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


centos7复制目录到其他目录 centos7 复制文件夹_cp 复制文件夹_07


[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 redisroot  21907  0.0  0.4 145256 4504 pts/0 Sl+ 15:51  0:00 redis-server *:6379root  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哨兵模式


centos7复制目录到其他目录 centos7 复制文件夹_redis哨兵主从不切换_08


1、基础配置

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

2、配置主服务 redis.conf

requirepass 123456masterauth  123456

3、配置从服务 redis.conf

requirepass 123456slaveof 192.168.1.101 6379masterauth 123456


centos7复制目录到其他目录 centos7 复制文件夹_laravel redis_09


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 2sentinel auth-pass mymaster 123456

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

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


centos7复制目录到其他目录 centos7 复制文件夹_cp 复制文件夹_10