Redis集群部署


 redis源码包下载地址:http://download.redis.io/releases/

 redis使用手册:http://redisdoc.com/index.html

下载需要注意的是: Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的版本号用来表示非标准版本,例如2.9.x是非稳定版本,它的稳定版本是3.0。


 Redis集群部署

下列部署方式采用的是redis-cli方式创建的redis集群,只有redis5.0以后的版本才支持该方式,之前的版本都是使用redis-trib.rb方式,但是需要安装ruby软件相对复杂。

注意:Redis集群至少需要3个master节点,所以现在总共有6个节点,就只能是1master对应1slave这种方式

服务规划:

我们使用3台设备进行搭建,每台设备上有两个节点,使用不同的端口进行部署

安装前准备(所有设备):

1.下载所需依赖包

    yum -y install gcc-c++

2.关闭防火墙

    systemctl stop firewalld.service

    systemctl disable firewalld.service

3.关闭SELinux

    setenforce 0               

    vi /etc/selinux/config   

SELINUX=enforcing改为SELINUX=disabled

安装redis(192.168.36.137)

1.解压安装包

    #将安装包上传至/opt/instll下(个人习惯)

    tar -zxvf /opt/install/redis-6.2.1/tar/gz

    cd /opt/install/redis-6.2.1

    #编译安装至/opt/redis7000下,7000是我们该redis使用的端口

    make && make install PREFIX=/opt/redis7000

2.配置redis配置文件

    mkdir -p /opt/redis7000/conf

    cd /opt/install/redis-6.2.1

    #将redis源码包里的redis.conf配置文件放置到我们redis安装路径下

    mv redis.conf /opt/redis7000/conf/

    vim /opt/redis7000/conf/redis.conf

1.bind 192.168.36.137                      //将bind 127.0.0.1修改为自己本机的IP地址
2.daemonize yes                            //redis放置后台启动
3.port 7000                                //设置端口
4.pidfile /opt/redis7000/redis_7000.pid
5.logfile /opt/redis7000/redis_7000.log
6.dir /opt/redis7000/redis_7000_dir
7.masterauth 123                           //配置密码,所有节点统一
8.requirepass 123                          //配置密码,所有节点统一
9.cluster-enabled yes                      //开启集群
10.cluster-config-file redis.conf          //指定配置文件名称
11.cluster-node-timeout 15000
12.appendonly yes                          //开启aof持久化,要想了解redis持久化,可以看我之前写的,如果对于redis上的数据不是那么重要的话,也可以不进行redis持久化配置
13.no-appendfsync-on-rewrite yes           //aof重写期间是否同步

    mkdir /opt/redis7000/redis_7000_dir

3.复制redis7000创建第二个节点,使用7001端口

    cp -r /opt/redis7000 /opt/redis7001

    cd /opt/redis7001/conf/

    #文档内容替换,替换7000字符成7001    

    sed -i "s/7000/7001/g" redis.conf

    #修改dir数据文件名称

    cd /opt/redis7001/

    mv redis_7000_dir redis_7001_dir

至此,192.168.36.137设备上的两个redis就已经配置完成了!

4.将redis文件远程拷贝到其它设备上

    scp -r /opt/redis7000 root@192.168.36.138:/opt

    scp -r /opt/redis7000 root@192.168.36.139:/opt

然后修改其它两台设备上的redis文件名和dir文件名,并将redis.conf配置文件内容进行替换成对应的内容即可。

最后再将6个节点的redis全部启动即可。(进入redis的bin目录,使用./redis-cli ../conf/redis.conf命令启动)


 创建redis集群

随便登录一台服务器上的一个节点,在此,我以192.168.36.137为例

    cd /opt/redis7000/bin

    #cluster-replicas 1代表1个master后有几个slave节点,1代表1个,所以6个节点将会产生3个master和3个slave     

    ./redis-cli --cluster create 192.168.36.137:7000 192.168.36.137:7001 192.168.36.138:7002 192.168.36.138:7003 192.168.36.139:7004 192.168.36.139:7005 --cluster-replicas 1

    #该命令只需要执行一次即可,后面哪怕我们重启了整个redis,也不需要执行第二次了

Can I set the above configuration? (type 'yes' to accept): yes    //弹出该项,输入yes即可

 连接redis集群

    cd /opt/redis7000/bin

    # -c代表连接集群,-a是我们的redis密码

    ./redis-cli -h 192.168.36.137 -p 7000 -c -a 123 --raw

    #要想不提示下方的警告,在命令后加上 2>/dev/null即可

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.    //该警告是我们的密码明文显示提示的警告

    #查看redis集群信息

192.168.36.137:7000> cluster nodes

 需要说明的是,redis集群中插入数据的话是随机存储到集群中的某个节点的,是一个分布式的存储,你只有进入到对应的节点,才可以看到相应的数据。


 至此,redis集群就部署完成了!