redis集群搭建实操之predixy代理

架构图

我们采用的是一个predixy代理两套哨兵机制的主从复制, 每套主从复制都是一个主节点2个从节点
在这里插入图片描述

搭建

前期准备

要搭建两套哨兵机制,需要3个sentinel实例,2套主从复制(每套一个主节点,一个从节点),参考文章: redis集群搭建之主从复制Redis哨兵-实现Redis高可用
在这里插入图片描述
这里是一个sentinel实例分别监听两个master,配置文件如下:
在这里插入图片描述
三个sentinel和6个redis实例全部启动; sentinel日志输出:
在这里插入图片描述

下载predixy

  1. 下载源码,predixy源码地址 我们进去后会发现:要求是c++11编译,我的是centOS6,不支持,但是有直接编译好的
    在这里插入图片描述

我们采用下载官网编译好的predixy的可执行程序
在这里插入图片描述
在这里插入图片描述

# 下载
wget https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz
# 解压
tar -xf predixy-1.0.5-bin-amd64-linux.tar.gz
# 解压后的目录
drwxrwxr-x 2 501 501 4096 Oct 20  2018 bin    //可执行程序
drwxrwxr-x 2 501 501 4096 Mar 25 11:27 conf  //配置文件
drwxrwxr-x 3 501 501 4096 Oct 20  2018 doc
-rw-rw-r-- 1 501 501 1537 Oct 20  2018 LICENSE
-rw-rw-r-- 1 501 501 5680 Oct 20  2018 README_CN.md
-rw-rw-r-- 1 501 501 4200 Oct 20  2018 README.md
drwxrwxr-x 2 501 501 4096 Oct 20  2018 test

配置

配置文件目录(/usr/local/software/redis/predixy-1.0.5/conf)

-rw-rw-r-- 1 501 501 2395 Oct 20  2018 auth.conf
-rw-rw-r-- 1 501 501 1041 Oct 20  2018 cluster.conf  //分片配置文件
-rw-rw-r-- 1 501 501 3426 Oct 20  2018 command.conf
-rw-rw-r-- 1 501 501  781 Oct 20  2018 dc.conf
-rw-rw-r-- 1 501 501 2121 Oct 20  2018 latency.conf
-rw-rw-r-- 1 501 501 2547 Oct 20  2018 predixy.conf  //主配置文件(引入其他的配置文件:sentinel.conf等,需要手动开启)
-rw-rw-r-- 1 501 501 1421 Oct 20  2018 sentinel.conf  // 哨兵配置文件
-rw-rw-r-- 1 501 501 2016 Oct 20  2018 standalone.conf
-rw-rw-r-- 1 501 501   98 Oct 20  2018 try.conf

配置哨兵
打开sentinel.conf
在这里插入图片描述
配置为我们自己的

SentinelServerPool {
    Databases 16
    Hash crc16
    HashTag "{}"
    Distribution modula
    MasterReadPriority 60
    StaticSlaveReadPriority 50
    DynamicSlaveReadPriority 50
    RefreshInterval 1
    ServerTimeout 1
    ServerFailureLimit 10
    ServerRetryTimeout 1
    KeepAlive 120
    Sentinels {
        + 127.0.0.1:26379
        + 127.0.0.1:26380
        + 127.0.0.1:26381
    }
    Group shard001 {mymaster}
    Group shard002 {youmaster}

打开predixy.conf 放开端口和引入sentinel.conf的设置

放开端口: 7617
在这里插入图片描述
引入服务,只引入sentinel.conf, 把 try.conf注释掉,否则会报predixy running exception:Conf.cpp:180 Can’t define ClusterServerPool/StandaloneServerPool at the same time异常
在这里插入图片描述

启动

进入predixy的bin目录执行./predixy ../conf/predixy.conf
在这里插入图片描述

调试

启动predixy的客户端

 redis-cli -p 7617

在这里插入图片描述
在6380和16380的客户端验证数据分区
在这里插入图片描述
这时候我们发现数据分开了,K1和K3落在了一个节点,K2落在了另一个节点, 那么如何让指定的数据落在同一个redis实例上?
在这里插入图片描述
在这里插入图片描述
发现相同标识{}的数据,都会落在同一台机器上,比如{mn} 或者是带{abc}的,总之带相同标识{}的都会落在一台机器,这是predixy专门为客户提供的,可以根据业务需要,人为的让数据都落在一台机器上

predixy只支持单实例事物,不支持多实例事物
在这里插入图片描述
我们去掉一个实例,打开sentinel.conf注释掉youmaster,再来观察
在这里插入图片描述

在这里插入图片描述

我们关掉6380master节点,看看是否会有新的节点上来
在这里插入图片描述
在这里插入图片描述
6381节点被选为主节点,然而客户端没有丝毫察觉

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Redis 集群的搭建,可以通过以下步骤现: 1. 准备集群节点:在准备搭建 Redis 集群之前,需要先准备好一组 Redis 节点。每个节点都是一个独立的 Redis 服务器,可以运行在同一台物理机上或者不同的物理机上。 2. 配置节点:对于每个节点,需要修改其配置文件以启用集群模式。打开每个节点的配置文件(redis.conf),将 cluster-enabled 参数设置为 yes,将 cluster-config-file 参数设置为一个文件路径(用于保存集群的配置信息),并将 cluster-node-timeout 参数设置为一个适当的值(用于检测节点是否离线)。 3. 启动节点:启动每个节点的 Redis 服务器。可以使用 redis-server 命令启动,指定配置文件作为参数。例如:redis-server /path/to/redis.conf 4. 创建集群:使用 redis-cli 命令行工具创建 Redis 集群。首先连接到任意一个节点(假设其 IP 地址为 192.168.0.1,端口号为 6379),然后执行以下命令创建集群: ``` redis-cli --cluster create 192.168.0.1:6379 192.168.0.2:6379 192.168.0.3:6379 192.168.0.4:6379 192.168.0.5:6379 192.168.0.6:6379 --cluster-replicas 1 ``` 这里将 192.168.0.1:6379 等替换为际的节点 IP 地址和端口号。--cluster-replicas 参数用于设置每个主节点的从节点数量。 5. 验证集群:连接到任意一个节点,可以使用 cluster info 命令查看集群的一些信息,如节点数量、主从关系等。还可以使用 cluster nodes 命令查看每个节点的状态信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值