方案比较:
1.哨兵模式:这种模式让哨兵来进行redis集群的master选举,但是如果哨兵宕机了 ,那么redis集群就无法选举主机.
2.高可用集群模式(Redis3.0版本以后):3.0版本后,redis集群可以自己选举master,注意在这种模式下搭建集群至少需要三个master,否则无法完成master的选举
Redis高可用集群搭建步骤:
1.首先我们进入redis.io下载最新稳定版redis的压缩包.也可以直接用wget进行下载:
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
2.然后我们解压redis的压缩包:
tar -zxfv redis-4.0.11.tar.gz
3.这里要注意一点,因为Redis是C实现的,需要gcc来进行编译,如果系统已安装gcc则可以跳过此步骤,按顺序执行:
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
4.安进入解压后的redis目录,并编译到指定目录
cd redis-4.0.11/
make install PREFIX=/usr/local/redis
5.前台启动测试一下,看看redis是否安装完成
/usr/local/redis/bin/redis-server
如果出现如下画面,恭喜你redis安装成功,我们按下ctrl+c结束任务
6.从redis的源码目录中复制redis.conf到redis的安装目录
cp redis.conf /usr/local/redis/bin
7.进入到安装目录中
cd /usr/local/redis/bin
8.编辑配置文件redis.conf(修改为后台启动模式)
vi redis.conf
把后台运行开启,把原来的NO改成yes,如果你不会vi编辑器,你可以去别的地方看一下。在这里我可以简单的告诉你VI编辑器怎么用,第一步,按下i,按方向键找到这位置,把daemonize on改为daemonize yes按esc退出编辑状态,按下:,输入wq!强制保存退出 ok就是这么简单。
9.后台启动redis
./redis-server redis.conf
10.测试是否启动成功,用客户端连接,使用quit可以退出
./redis-cli
11.集群的搭建
现在才是正真的集群搭建。创建6个redis实例,端口号从7001~7006
11.1进入到指定目录
cd /usr/local
11.2创建目录redis-cluster
mkdir redis-cluster
11.3进入redis/bin目录,把持久化文件删掉(如果没有 可以忽略)
cd redis/bin
rm -f dump.rdb
11.4创建多个redis实例
cd .. //返回上一级目录
cp -r bin ../redis-cluster/redis01
cp -r bin ../redis-cluster/redis02
cp -r bin ../redis-cluster/redis03
cp -r bin ../redis-cluster/redis04
cp -r bin ../redis-cluster/redis05
cp -r bin ../redis-cluster/redis06
11.5进入redis-cluster目录
cd ../redis-cluster
11.6去编辑各个实例下面的配置文件,修改两处,第一修改端口号,第二打开cluster-enable前面的注释(这里我的端口号为7001-7006)
vi redis01/redis.conf
vi redis02/redis.conf
vi redis03/redis.conf
vi redis04/redis.conf
vi redis05/redis.conf
vi redis06/redis.conf
11.7安装ruby脚本运行环境
yum install ruby
gem install redis
如果这里报错 “redis requires Ruby version >= 2.2.2”
我们需要换源安装更高版本的ruby
yum install centos-release-scl-rh
//会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
yum install rh-ruby23 -y //直接yum安装即可
scl enable rh-ruby23 bash //必要一步
ruby -v
gem install redis
11.8把创建集群的ruby脚本复制到redis-cluster的目录下11.8
cd /root/redis-4.0.11/src
cp *.rb /usr/local/redis-cluster/
cd /usr/local/redis-cluster
11.9开始创建集群(编写集群脚本)
vim startall.sh
内容如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
11.10编辑脚本权限
chmod +x startall.sh
11.11启动redis,查看运行状态
./startall.sh
ps aux|grep redis
12.创建集群
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
这里的M:代表主机(master),S:代表从机(slave)
这里的意思是采用7001,7002,7003作为主机 7004,7005,7006作为从机,如果确定了就输入yes redis高可用集群搭建完毕!!