Redis群集部署

文章目录

      • 一、概述
      • 二、Redis集群的优势
      • 三、redis群集部署
        • 3.1、环境介绍
        • 3.2、实验步骤
      • 四、验证群集功能

一、概述

  • Redis3.0版本以.上开始支持cluster,采用的是hash slot(hash槽),可以将多个Redis实例整合在一起,形成一个群集,也就是将数据分散到群集的多台机器上。

二、Redis集群的优势

  • 自动分割数据到不同的节点上,解决单点故障
  • 整个集群的部分节点失败或者不可达的情况下能够继续处理命令

三、redis群集部署

3.1、环境介绍

  • redis群集至少需要6个节点服务器,3主3备,但主节点宕机时,备用节点能变为主节点继续服务。
  • master1:192.168.5.150/24
  • master2:192.168.5.151/24
  • master3:192.168.5.152/24
  • slave1:192.168.5.250/24
  • slave2:192.168.5.251/24
  • slave3:192.168.5.252/24

3.2、实验步骤

  • 6个节点安装redis软件
yum install gcc gcc-c++ make -y   ##安装环境包
tar zxvf redis-5.0.4.tar.gz -C /opt      ##解压源码包到opt目录下
cd /opt/redis-5.0.4/
make -j8
make PREFIX=/usr/local/redis install      ###指定安装路径
  • 6个节点都关闭防火墙,启动redis服务
systemctl stop firewalld   ##关闭防火墙
setenforce 0    ##关闭增强型安全功能
ln -s /usr/local/redis/bin/* /usr/local/bin/   ##创建软连接让系统环境识别
cd /opt/redis-5.0.4/utils/
./install_server.sh        ##执行启动脚本
 ##......省略启动过程,
 Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/bin/redis-server    ###手动输入
 netstat -natp | grep 6379     ##检查redis 6379端口是否开启
  • 6个节点修改配置文件
vi /etc/redis/6379.conf
##70行 bind  127.0.0.1   注释掉
##89行 改为 protected-mode no 关掉保护
##839  开启群集功能  cluster-enabled yes  前面注释去掉
##841  群集节点配置文件 cluster-config-file nodes-6379.conf ###前面的#号去掉
##847   超时时间   cluster-node-timeout 15000           ###前面的#号去掉
###  cluster-require-full-coverage no  ###前面的#号去掉 yes改成no,当主库down机,没有从库时群集仍然可用
###700行  appendonly yes  开启持久化
  • 6个节点重启redis服务
 /etc/init.d/redis_6379 restart
 
 ###redis的配置文件在 /var/lib/redis/6379/
  • 建立群集,只需要在一个节点上操作
yum -y install ruby rubygems  
##上传redis-3.2.0.gem 这个包到/opt目录下执行下面命令,(gem下载地址:https://rubygems.org/gems/redis/versions/3.0.2)
cd /opt
gem install redis --version 3.2.0
cd /opt/redis-5.0.4/src/
redis-cli --cluster create --cluster-replicas 1 192.168.5.150:6379 192.168.5.151:6379 192.168.5.152:6379 192.168.5.250:6379 192.168.5.251:6379 192.168.5.252:6379
Can I set the above configuration? (type 'yes' to accept): yes  ###这个地方要输入yes
  • 远程进入redis数据库
redis-cli -h 192.168.5.150 -p 6379 -c 

192.168.5.150:6379> cluster info         ####查看集群状态

192.168.5.150:6379> cluster nodes     ####查看节点信息
eaebf0547271d50362bf5da65558de335d76c1d0 192.168.5.152:6379@16379 master - 0 1584884400507 3 connected 10923-16383
flcd054727add70f5c8045c378j0dfbd52604702 192.168.5.252:6379@16379 slave eaebf0547271d50362bf5da65558de335d76c1d0 - 0 1584884400621 6 connected
01930e787a3af7bf3cd56085e490d540e6d7800b 192.168.5.150:6379@16379 myself,master - 0 1584884400000 1 connected 0-5460
352dcd0258945621452fd4efdcf00249537706a2 192.168.5.250:6379@16379 slave 01930e787a3af7bf3cd56085e490d540e6d7800b - 0 1584884678511 5 connected
bf62d7ab749ef2afadd70f5c8045c378e770b411 192.168.5.151:6379@16379 master - 0 1584884399494 2 connected 5461-10922
45698hhcdf0gf70f5c8045c378jcd765f0c27664 192.168.5.251:6379@16379 slave bf62d7ab749ef2afadd70f5c8045c378e770b411 - 0 1584884400621 4 connected


四、验证群集功能

  • 数据同步功能

在mster节点上创建一个键值对

redis-cli -h 192.168.5.150 -p 6379 -c   ##进入192.168.5.150节点数据库
192.168.5.150:6379> set centos 7.6     ###创建一个键值对
192.168.5.150:6379> get centos	    ###查看centos键的值
"7.6"
192.168.5.150:6379> exit  ##退出

进入192.168.5.150的从库验证写入信息

redis-cli -h 192.168.5.250 -p 6379 -c   ##进入192.168.5.150的从库
192.168.5.250:6379> keys *     #查看所有键
"centos"
192.168.5.2500:6379> get centos   ###查看centos键的值
"7.6"
  • 高可用故障转移功能
##手动宕掉一台master服务器
redis-cli -h 192.168.5.150 -p 6379 shutdown
###查看群集状态,发现被宕掉的master节点对应的从库变为了主库
192.168.5.151:6379> cluster nodes  ###查看节点信息
352dcd0258945621452fd4efdcf00249537706a2 192.168.5.250:6379 master.......//省略

你可能感兴趣的:(群集架构)