服务器篇(Redis)---Redis集群的搭建

目录

架构图

容错图

架构细节

节点分配

集群的搭建

集群搭建环境

使用方式

数据测试


架构图

    redis-cluster架构图

容错图

    redis-cluster投票:容错图

架构细节

  • 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
  • 节点的fail是通过集群中超过半数的节点检测失效时才生效.
  • 客户端与redis节点直连,不需要中间proxy.客户端不需要连接集群所有节点,连接集群 一个可点即可

  •  redis-cluster把所有的物理节点映射到[0-16383]slot,cluster 负责维护node<->slot<->vallue

节点分配

    Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出

    一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量

    大致均等的将哈希槽映射到不同的节点。如下图所示

集群的搭建

    Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机

    所以Redis集群至少需要6台服务器,而考虑到太占用资源,我们可以搭建伪分布式

    可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006

    首先创建个redis-cluster文件夹,我的是在local下创建的   

mkdir /usr/local/redis-cluster

     然后把已经装好redis文件下的bin目录复制到redis-cluster文件下,没装的话看下面这篇博客

cp /usr/local/redis/bin /usr/local/redis-cluster/redis-01 -r

     如果redis-01中有dump.rdb话就删除

rm -f dump.rdb

     更改redis.conf配置文件,更改端口和放开cluster-enabled yes

vim redis.conf

    然后把redis-01复制5个,在redis-cluster文件目录下

cp -r redis-01/ redis-02
cp -r redis-01/ redis-03
cp -r redis-01/ redis-04
cp -r redis-01/ redis-05
cp -r redis-01/ redis-06

    把每个复制的文件下的port端口改了

    启动:一个个启动太麻烦了,可以写个批处理 vim start-all.sh 把下面内容复制到里面保存            

cd redis-01
./redis-server redis.conf
cd  ..
cd redis-02
./redis-server redis.conf
cd  ..
cd redis-03
./redis-server redis.conf
cd  ..
cd redis-04
./redis-server redis.conf
cd  ..
cd redis-05
./redis-server redis.conf
cd  ..
cd redis-06
./redis-server redis.conf
cd  ..

      给这个批处理赋予权限

chmod u+x start-all.sh

      查看是否启动成功

ps aux|grep redis

      接下来把这六个节点连接到一起把槽分配好,需要一个工具(ruby脚本),在redis源代码中,复制过来

cp /redis-3.0.0/src/redis-trib.rb /usr/local/redis-cluster/

集群搭建环境

     使用ruby脚本搭建集群,需要ruby环境 ,输入以下命令

yum install ruby
yum install rubygems

      安装ruby脚本运行使用的包,先把包下载下来,下面提供了网盘链接

      链接:https://pan.baidu.com/s/1jUyFF0KmMOsj5IfzYhgz8w 提取码:t349 

      然后输入以下命令安装

gem install redis-3.0.0.gem

       装好后就可以启动啦,不过启动时需要设置参数

./redis-trib.rb create --replicas 1 192.168.25.128:7001 192.168.25.128:7002 192.168.25.128:7003 192.168.25.128:7004 192.168.25.128:7005  192.168.25.128:7006

        上面的IP地址要改为自己的

        启动后的结果为

        可以看到各个节点的创建和连接,槽的分配,主从节点的创建都已成功,最后yes就可以了

        可以看到集群已经搭建成功了。注意:要关闭防火墙

使用方式

    先连接集群,任意节点都行

redis-01/redis-cli -p 7004 -c         -p是指定端口号    -c是说明连接的是集群

数据测试

      可以看到每次添加数据它都能均匀的分配到每个主节点,数据测试也没问题,接下来可以使用了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值