Redis集群配置和管理详解

本文详细介绍了Redis集群的原理、为何需要集群、集群的作用以及如何搭建和管理Redis集群,包括配置文件创建、节点启动、集群创建、状态查看、数据平衡和节点增删等操作。
摘要由CSDN通过智能技术生成

1、集群介绍

1.1、为什么需要集群

        在之前的哨兵当中,一旦主服务 master 挂掉了,就势必会导致一段时间内的数据写不进去了,当并发量很大的时候这势必是一个比较大的问题。集群就说为了解决这个问题而诞生的。

 1.2、什么是集群

  • 由于数据量过大,单个Master主从集难以承担,因此需要对多个主从集进行集群,形成水平扩展每个主从集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。
  • Redis集群是一个提供在多个Redis节点间共享数据的程序集
  • Redis集群可以支持多个Master

1.3、集群作用

  1. Redis集群支持多个Master,每个Master又可以挂载多个Slave
  2. 由于Cluster自带Sentinel的故障转移机制,内置了高可用的支持,无需再去使用哨兵功能
  3. 客户端和Redis的节点连接,不再需要连接集群中所有节点,只需连接集群中的任意一个可用节点即可(一个有所有都有了)
  4. 槽位slot负责分配到各个物理服务节点,由对应的集群来负责维护节点、插槽和数据之间的关系

2、集群搭建

2.1、创建集群配置目录

  • 在redis安装目录下,创建文件夹cluster-conf,用于存放集群配置文件
  • cd /usr/local/redis-7.2.4
    mkdir cluster-conf
    

  • 2.2、创建配置集群配置文件

    •         我们以redis.conf为原始文件,拷贝6个文件放在cluster-conf目录中(为了方便配置,最好cat命令取掉注释和空格空白行),作为集群的配置文件,在配置文件中修改端口和其他参数,我们定义6个集群节点端口分别为 7001、7002、7003、7004、7005、7006
    • 1、创建并配置第一个节点redis-7001.conf

    • cp redis.conf cluster-conf/redis-7001.conf

      或者

      cat redis.conf | grep -v "#" | grep -v "^$" >cluster-conf/redis-7001.conf   (建议)

修改配置redis-7001

cd cluster-conf/
vim redis-7001.conf

 主要修改如下项:

#注释,允许远程访问
#bind 127.0.0.1 -::1
#关闭保护模式
protected-mode no
#端口
port 7001
#后台运行
daemonize yes
dbfilename dump_7001.rdb

appendfilename "appendonly_7001.aof"

 并添加集群配置:

#开启集群
cluster-enabled yes

#集群的配置文件名称,不需要我们创建,redis自行维护
cluster-config-file nodes-7001.conf

#节点心跳失效的超时时间
cluster-node-timeout 15000

 修改完成如下:

2、创建并配置第二个节点redis-7002.conf

拷贝redis-7001.conf ,修改端口就可以

cp redis-7001.conf redis-7002.conf

vim redis-7002.conf

3、创建并配置第三个节点redis-7003.conf

cp redis-7001.conf redis-7003.conf

修改端口

vim redis-7003.conf

 4、同理创建并配置第四,第五和第六个节点redis-7004.conf、redis-7005.conf、redis-7006.conf

 全部修改完毕。

2.3、启动创建的6个集群节点实例

在/usr/local/redis-7.2.4/cluster-conf下,分别启动6个服务

redis-server redis-7001.conf &

 

redis-server redis-7002.conf &

redis-server redis-7003.conf &

redis-server redis-7004.conf &

 

redis-server redis-7005.conf

redis-server redis-7006.conf &

 

查看6个实例是否启动

ps -ef |grep redis

2.4、创建并启动集群 

现在只是开启了redis服务,并没有形成分片集群,要形成分片集群,就需要进行一下操作。

我们使用的redis6.2.6版本的redis,对应redis5.0之后,集群管理已经集成到了redis-cli命令里面去了。

启动集群命令如下:

redis-cli --cluster create --cluster-replicas 1 192.168.0.108:7001 192.168.0.108:7002 192.168.0.108:7003 192.168.0.108:7004 192.168.0.108:7005 192.168.0.108:7006

--cluster:代表使用集群操作命令。

create:创建集群。

192.168.0.106:客户端或者程序访问的IP地址

 --replicas 1:也就是设置replicas=1指一个主机提供一个备机,此时有6的接口,除以2对应就是有3个主节点,每个对应一个备机。

我们可以通过这个图,可以看到slots就是redis把主节点分配的插槽位置

这里输入yes

Can I set the above configuration? (type 'yes' to accept): yes

则会出现

[OK] All 16384 slots covered.

则说明集群组建完毕。

 3、集群测试

可以连接任何一个节点,输入如下命令,进入客户端

redis-cli -p 7001 –c

 在7001节点set一个值,集群会存在一个节点上;当get获的时候,又从存的节点取出。

4、集群管理

4.1、查看集群状态

redis-cli -p 7001 cluster nodes

或者

redis-cli --cluster info 127.0.0.1:7001

 

4.2、平衡节点的数据槽数

当槽的节点不平衡时,需要平衡槽的数量

redis-cli --cluster rebalance 127.0.0.1:7001

 

4.3、增加节点 

首先在cluster-conf中增加集群配置文件,然后启动集群节点,通过如下命令加入到集群

 先要启动节点

redis-server redis-7007.conf &

 再增加节点

redis-cli --cluster add-node 192.168.0.108:7007 192.168.0.108:7001

添加7007节点到集群,7001表示存在的节点,任何一个存在的节点都可以。

4.4、迁移节点槽

redis-cli --cluster reshard 192.168.0.108:7001

 4.5、删除节点

删除前需要迁移节点槽数据,有数据的节点不能删除

redis-cli --cluster del-node 192.168.0.108:7001 节点id

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值