首页 > 数据库 >redis集群搭建,哨兵集群搭建

redis集群搭建,哨兵集群搭建

时间:2024-08-01 16:28:04浏览次数:14  
标签:redis cluster 集群 conf dxh sentinel root 搭建

一、首先创建redis文件夹,下载redis源码(通过yum下载无法指定文件夹,比较乱)

[root@dxh redis]# mkdir /redis
[root@dxh redis]# cd /redis/
[root@dxh redis]# wget http://download.redis.io/releases/redis-6.2.6.tar.gz

二、解压源码,并下载工具进行编译

[root@dxh redis]# tar -xf ./redis-6.2.6.tar.gz 
[root@dxh redis]# cd ./redis-6.2.6/
[root@dxh redis-6.2.6]# yum update
[root@dxh redis-6.2.6]# yum groupinstall "Development Tools"
[root@dxh redis-6.2.6]# make
[root@dxh redis-6.2.6]# make install

三、创建多个配置文件(我这里用一台机器搭配集群,所以需要创建多个端口的redis服务,如果是多台机器搭建集群则不需要)

[root@dxh redis-6.2.6]# mkdir conf
[root@dxh redis-6.2.6]# mkdir cluster-node
[root@dxh redis-6.2.6]# mv ./redis.conf ./conf/
[root@dxh redis-6.2.6]# cd ./conf/
[root@dxh conf]# cp ./redis.conf ./redis-6380.conf 
[root@dxh conf]# cp ./redis.conf ./redis-6381.conf 
[root@dxh conf]# cp ./redis.conf ./redis-6382.conf 

创建三个配置文件后,修改配置文件内容如下

//redis-6380.conf
port 6380
cluster-enabled yes//是否开启集群
cluster-config-file nodes-6380.conf//集群节点配置文件,创建集群时自动生成,只需指定名称和路径
cluster-node-timeout 5000//超时事件
appendonly yes//是否开始持久化存储
dir /redis/redis-6.2.6/cluster-node//集群节点配置文件路径

//redis-6381.conf
port 6380
cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 5000
appendonly yes
dir /redis/redis-6.2.6/cluster-node

//redis-6382.conf
port 6380
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000
appendonly yes
dir /redis/redis-6.2.6/cluster-node

四、启动所有服务,启动集群

[root@dxh conf]# cd ../bin/
[root@dxh bin]# ./redis-server ../conf/redis-6380.conf &
//ctrl+c退出
[root@dxh bin]# ./redis-server ../conf/redis-6381.conf &
#ctrl+c退出
[root@dxh bin]# ./redis-server ../conf/redis-6382.conf &
#ctrl+c退出
#--cluster-replicas参数是指定一个主机有几个从机,redis规定最少三个主机,所以我这里只能全当主机,不要从机,如果有更多节点,并且这个值不为0的话,前面的节点当主机,后面的节点当从机
[root@dxh bin]# ./redis-cli --cluster create 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 --cluster-replicas 0

五、测试集群

通过redis-cli链接一个redis服务,使用cluster nodes命令查看,发现三个节点,集群搭建成功

[root@dxh bin]# ./redis-cli -c -p 6380
127.0.0.1:6380> cluster nodes
bc2b8b7dac060bbb97a24d0f81a31fc4c608f721 127.0.0.1:6380@16380 myself,master - 0 1722347028000 1 connected 0-5460
be6f99958c433cabe692bfd0455bd7acaf68d4b2 127.0.0.1:6382@16382 master - 0 1722347028420 3 connected 10923-16383
24387541d23d63a7674d2d1c3ead36d896de0091 127.0.0.1:6381@16381 master - 0 1722347029430 2 connected 5461-10922

六、搭建哨兵集群,监控节点(我这里依旧是一个机器,多个端口的哨兵服务)

[root@dxh redis-6.2.6]# mkdir sconf
[root@dxh redis-6.2.6]# mv ./sentinel.conf ./sconf/
[root@dxh sconf]# cp sentinel.conf 80sentinel.conf
[root@dxh sconf]# cp sentinel.conf 81sentinel.conf
[root@dxh sconf]# cp sentinel.conf 82sentinel.conf

修改哨兵配置不需要主动声明集群,只需要多个节点监听同一节点则就是集群结构,一个节点也能监听多个主机,只需要配置时多配置一个sentinel monitor即可(主机名不能重复),具体配置如下,如果看不懂注释可以看我的另一篇文章redis哨兵原理

//80sentinel.conf
port 26380
sentinel monitor mymaster 127.0.0.1 6380 2 //分别是主机的ip和端口,以及多少哨兵发现主机主观下线后,认为主机客观下线
sentinel down-after-milliseconds mymaster 5000//多少毫秒没有收到主机回应则认为主机主观下限
sentinel failover-timeout mymaster 10000//选举新主机的超时事件
sentinel parallel-syncs mymaster 1//最多有多少个从节点同时与新的主节点进行数据同步

//81sentinel.conf
port 26381
sentinel monitor mymaster 127.0.0.1 6380 2 //分别是主机的ip和端口,以及多少哨兵发现主机主观下线后,认为主机客观下线
sentinel down-after-milliseconds mymaster 5000//多少毫秒没有收到主机回应则认为主机主观下限
sentinel failover-timeout mymaster 10000//选举新主机的超时事件
sentinel parallel-syncs mymaster 1//最多有多少个从节点同时与新的主节点进行数据同步

//82sentinel.conf
port 26382
sentinel monitor mymaster 127.0.0.1 6380 2 //分别是主机的ip和端口,以及多少哨兵发现主机主观下线后,认为主机客观下线
sentinel down-after-milliseconds mymaster 5000//多少毫秒没有收到主机回应则认为主机主观下限
sentinel failover-timeout mymaster 10000//选举新主机的超时事件
sentinel parallel-syncs mymaster 1//最多有多少个从节点同时与新的主节点进行数据同步

全部启动

[root@dxh bin]# ./redis-sentinel ../sconf/80sentinel.conf &
#ctrl+c
[root@dxh bin]# ./redis-sentinel ../sconf/81sentinel.conf &
#ctrl+c
[root@dxh bin]# ./redis-sentinel ../sconf/82sentinel.conf &
#ctrl+c

通过redis-cli链接哨兵节点,执行指令测试

[root@dxh bin]# ./redis-cli -p 26380
127.0.0.1:26380> SENTINEL masters
    1) "name"
    2) "mymaster"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6380"
    7) "runid"
    8) "6fca86fda8a75951355b337dc3aaa846fcf0addf"
    9) "flags"
    10) "master"
    11) "link-pending-commands"
    12) "0"
    13) "link-refcount"
    14) "1"
    15) "last-ping-sent"
    16) "0"
    17) "last-ok-ping-reply"
    18) "242"
    19) "last-ping-reply"
    20) "242"
    21) "down-after-milliseconds"
    22) "30000"
    23) "info-refresh"
    24) "7060"
    25) "role-reported"
    26) "master"
    27) "role-reported-time"
    28) "77177"
    29) "config-epoch"
    30) "0"
    31) "num-slaves"
    32) "0"
    33) "num-other-sentinels"
    34) "0"
    35) "quorum"
    36) "2"
    37) "failover-timeout"
    38) "180000"
    39) "parallel-syncs"
    40) "1"
        127.0.0.1:26380> SENTINEL sentinels mymaster
        (empty array)
        127.0.0.1:26380> exit
        [root@dxh bin]# ./redis-cli -p 26381
        127.0.0.1:26381> SENTINEL masters

标签:redis,cluster,集群,conf,dxh,sentinel,root,搭建
From: https://blog.csdn.net/dxh9231028/article/details/140801366

相关文章

  • Ubuntu 22.04搭建MC fabric 1.20.1服务器 和 搭建李芒果空岛
    fabric服务器首先是下载fabric服务端DownloadMinecraftServerLauncher|Fabric(fabricmc.net)拖到vps里,运行即可。java-jarfabric-server-mc.1.20.1-loader.0.15.11-launcher.1.0.1.jarnogui然后它会让你把eula.txt里面的false改成true就好。重新运行,能创建世界......
  • MongoDB两地三中心集群架构设计、全球多写集群架构设计
    文章目录高级集群架构设计两地三中心集群架构设计容灾级别两地三中心方案:复制集跨中心部署两地三中心部署的考量点两地三中心复制集搭建环境准备整体架构配置域名解析启动5个MongoDB实例初始化复制集配置选举优先级启动持续写脚本(每2秒写一条记录)测试结果总结全球多......
  • MongoDB复制集/集群搭建详解
    文章目录复制集介绍三节点复制集模式Pss模式PSA模式典型三节点复制集环境搭建注意事项搭建配置复制集复制集状态查询复制集常用命令安全认证创建用户创建keyFile文件启动mongod复制集连接方式复制集成员角色属性成员角色配置隐藏节点配置延时节点添加投票节点移除复制......
  • visual studio 2019下Python的开发环境搭建
    Python的开发环境有各种各样的,在Windows下可以通过各种IDE(IIntegratedDevelopmentEnvironment)来进行开发,比如Pycharm,Spyder,Thonny,Eclipse+PyDev等等一些琳琅满目的编辑器,当然还有我的选择VisualStudio。之所以会选择VS,是因为VS本身就是一个功能非常强大的集成开发环境,其优......
  • kubeasz 制作k8s 集群离线安装包
    转载:kubeasz制作k8s集群离线安装包kubeasz制作k8s集群离线安装包大家好,欢迎来到运维有术本文介绍了,利用ezdown制作kubeasz离线部署k8s集群所需的离线安装包。使用kubeasz离线安装k8s集群需要下载四个部分:kubeasz项目代码二进制文件(k8s、etcd、container......
  • 离线搭建yum源
    一:准备工作1:准备linux对应的系统ISO镜像文件,并上传到目录,我这里上传到/app目录里了二:搭建yum源1:mount挂载镜像文件,我这里挂载到/mnt目录下mount-oloop/app/centos/6.8/os/x86_64******.iso/mnt#镜像文件改成自己想要的镜像文件即可2:查看挂载是否成功df-h3:将/etc......
  • Redis-入门
    Redis的10大数据类型这里的数据类型说的是value的数据类型1.字符串Stringstring是redis最基本的类型一个key对应一个value。string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象string类型是Redis最基本的数据类,一个redis中字符......
  • 一个wpf项目的搭建prism框架mvvm
    一个wpf项目的搭建prism框架mvvm简单prism项目:1.新建一个wpf的项目2.引入包:在nuget中,prism.DryIoc3.把空项目应用转化成Prism,把App基类Application改为PrismApplication,因为这个基类是分布类,其中app.xaml.cs基类改为PrismApplication,和xaml的标签,引入命名空间后改为<prism......
  • docker-compose搭建elk
    一、准备检查自己的docker和docker-compose是否安装完毕,切换docker的镜像源 二、安装本次安装的主要组件包括es、filebeat、kibana、logstash   2.1先配置组件的挂载点                       ......
  • kubeadm部署k8s集群
    目录1.环境准备2.升级内核3.所有节点安装docker4.安装kubeadm,kubelet和kubectl5.高可用配置6.部署K8S集群7.所有节点部署网络插件flannel8.部署Dashboard可视化面板9.更新k8s证书有效期1.环境准备7-2192.168.9.210master017-5192.168.9.120master027-7192.168.9.......