Centos7 Redis-cluster 集群搭建

Redis集群的三种模式

一、主从模式

优点:
配置简单,易于实现,数据备份,读写分离,当master节点发生故障后,可以选择一个slave节点作为master节点继续提供服务。
缺点:
主节点故障时,需要手动切换到从节点,故障恢复时间较长,主节点承担所有写操作,可能成为性能瓶颈。

二、哨兵模式

优点:
哨兵模式也是一种主从,主从的优点都有,具有监控的功能,当主节点宕机之后哨兵会推选一个健康的从节点做主节点,提高了可用性。
缺点:
需要多维护一套哨兵模式,比较麻烦,在重新选举主节点期间,无法确定主从,无法工作。并且较难支持在线扩容。

三、cluster模式

优点:
采用多主多从,去中心化。按照一定的规则进行分片,将数据分别存储,一定程度上解决了哨兵模式下单机存储有限的问题。
分片原理:
数据分片使用的是hash slot, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽。当存取redis key时候,redis会根据CRC16算法得到一个结果,然后把结果和16384求余,通过这个值去对应得节点获取数据。这个时候,应用客户端实际上只需要连接其中任意一个节点即可,然后Redis Cluster 中每个节点都保存了其他节点得槽信息,这样当存取key计算完槽之后,通过保存槽信息从配置中获取节点信息,然后再去对应得节点获取数据。

Redis-cluster集群搭建

一、环境准备

1. 安装ruby环境

yum -y install ruby

2. 安装gcc

yum install -y gcc g++ gcc-c++ make

3. 安装tcl

yum install -y tcl

二、安装集群

1. 在 /usr/local 目录创建redis文件夹

mkdir /usr/local/redis

2. 在 /usr/local/redis 目录创建redis-cluster文件夹

mkdir /usr/local/redis/redis-cluster

3. 进入 /usr/local/redis 目录下载redis-6.2.1.tar.gz压缩包

wget https://download.redis.io/releases/redis-6.2.1.tar.gz

4. 解压压缩包

tar -zxvf redis-6.2.1.tar.gz

5. 进入 /usr/local/redis/redis-6.2.1/src 目录进行编译安装

cd /usr/local/redis/redis-6.2.1/src/
make
make install

6. 进入 /usr/local/redis/redis-cluster 目录,创建文件夹 7001 7002 7003 7004 7005 7006 

cd /usr/local/redis/redis-cluster/
mkdir 7001 7002 7003 7004 7005 7006

7. 将 /usr/local/redis/redis-6.2.1 目录下的redis.conf文件分别复制到 7001 7002 7003 7004 7005 7006 中,并修改以下配置,其中700X代表各自目录

# 端口
port 700X
# 绑定服务器IP地址 
bind 192.168.31.240
# 开启集群功能
cluster-enabled yes
# 让redis后台运行
daemonize yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file nodes-700X.conf
# 日志
lo gfile /usr/local/redis/redis-cluster/700X/node-700X.log
#启动AOF增量持久化策略
appendonly yes

8. 分别启动6个Redis实例,并通过 ps -ef | grep redis 查看redis实列

redis-server /usr/local/redis/redis-cluster/7001/redis.conf
redis-server /usr/local/redis/redis-cluster/7002/redis.conf
redis-server /usr/local/redis/redis-cluster/7003/redis.conf
redis-server /usr/local/redis/redis-cluster/7004/redis.conf
redis-server /usr/local/redis/redis-cluster/7005/redis.conf
redis-server /usr/local/redis/redis-cluster/7006/redis.conf

 9. 通过 redis-cli 命令创建集群

命令说明:

redis-cli --cluster或者./redis-trib.rb:代表集群操作命令

create:代表是创建集群

--replicas 1或者--cluster-replicas 1 :指定集群中每个master的副本个数为1,此时节点总数 ÷ (replicas + 1) 得到的就是master的数量。因此节点列表中的前n个就是master,其它节点都是slave节点,随机分配到不同master

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

输入yes

 创建成功

三、测试集群

1. 连接7001节点

redis-cli -c -h 192.168.31.240 -p 7001

2. 通过 Cluster Nodes 查看集群信息,7001-7004,7002-7005,7003-7006

3. 存取值测试

 4. 选举机制测试

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值