暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis系列(二):Redis高可用集群

原创 James 2021-10-14
894



一、集群模式

  Redis集群是一个由多个主从(主从在Redis系列(四):Redis持久化和主从复制原理中详细介绍,这里先有个概念 )节点组成的高可用集群,它具有复制、高可用和分片等特性

 二、集群部署

1、环境

  3台主机分别是:

  192.168.160.146

  192.168.160.152

  192.168.160.153

  每台服务器1主1从,共3主3从

  相关安装包存储路径:/usr/local/redis-5.0.2

2、部署

   Redis安装详见Redis系列(一):Redis简介

   进入redis-5.0.2 cd /usr/local/redis-5.0.2

    创建集群配置文件夹  mkdir redis-cluster

   ④  (1)cd redis-cluster (2) mkdir 7001 和 mkdir 7002

    (1)cp /usr/local/redis-5.0.2/redis.conf 7001/ (2) cd 7001

    编辑redis配置文件 vim redis.conf 修改内容如下:

复制代码

daemonize yes
port 7001
dir /usr/local/redis-5.0.2/redis-cluster/7001/ 这里只是demo,正式环境把数据跟redis安装包分开
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
#bind 127.0.0.1
protected-mode no
appendonly yes

复制代码

  修改完后,cp redis.conf ../7002/  然后 cd /usr/local/redis-5.0.2/redis-cluster/7002 并修改的配置把所有的7001改成7002

   (1) scp -r /usr/local/redis-5.0.2 root@192.168.160.152:/usr/local/   (2) scp -r /usr/local/redis-5.0.2 root@192.168.160.153:/usr/local/ 将redis拷贝到其他2台主机上去,(3)分别进到 192.168.160.152 cd /usr/local 和192.168.160.153 cd /usr/local 如下:

    分别启动6个redis实例,然后检查是否启动成功 (1)/usr/local/redis-5.0.2/bin/redis-server /usr/local/redis-5.0.2/redis-cluster/700*/redis.conf (2)ps -ef | grep redis 查看是否启动成功

    用redis-cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)  /usr/local/redis-5.0.2/bin/redis-cli --cluster create --cluster-replicas 1 192.168.160.146:7001 192.168.160.152:7001 192.168.160.153:7001 192.168.160.146:7002 192.168.160.152:7002 192.168.160.153:7002 

    验证集群: (1)连接任意一个客户端即可:./redis-cli -c -h -p (-a访问服务端密码,-c表示集群模式,指定ip地址和端口号)如:/usr/local/redis-5.0.2/bin/redis-cli -c -h 192.168.160.146 -p 700* (2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表) (3)进行数据操作验证 (4)关闭集群则需要逐个进行关闭,使用命令: /usr/local/redis-5.0.2/bin/redis-cli -c -h 192.168.160.146 -p 700* shutdown

   其中cluster nodes信息如下:

复制代码

9f71f69f061d9e811161d6be8a93f81f53304aed 192.168.160.152:7001@17001 master - 0 1575046303552 2 connected 5461-10922
a5447a0de83b33c028a9374372aa5602a869602e 192.168.160.152:7002@17002 slave dd939a72e405bf1dbd6fd538bc4383642435298e 0 1575046301531 5 connected
e7f80ba80749904838b6d779a0646e7f22313624 192.168.160.146:7001@17001 myself,master - 0 1575046303000 1 connected 0-5460
35582c86fc41f67d0089da2e21e99d9c66164dd3 192.168.160.153:7002@17002 slave e7f80ba80749904838b6d779a0646e7f22313624 0 1575046302443 6 connected
dd939a72e405bf1dbd6fd538bc4383642435298e 192.168.160.153:7001@17001 master - 0 1575046303956 3 connected 10923-16383
eddc783d11a4b46cebf157b5a6488c4346aec541 192.168.160.146:7002@17002 slave 9f71f69f061d9e811161d6be8a93f81f53304aed 0 1575046303452 4 connected
#含义#
#节点ID
#IP:端口:集群端口
#标志: master, slave, myself, fail
#如果是从节点这里是他对应的主节点ID
#集群最近一次向节点发送PING 命令之后,过去了多长时间还没接到回复
#节点最近一次返回PONG回复的时间
#本节点的网络连接情况
#节点目前包含的槽:例如 192.168.160.146:7001目前包含0-5460个哈希槽(master)

复制代码

  至此Redis集群搭建完成!!!!!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论