Redis-三主三从高可用集群搭建

2024-05-05 21:04

本文主要是介绍Redis-三主三从高可用集群搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

正式搭建之前,注意事项(坑)提前放到最开始,也可以出问题回来看,

(1)第二步中最好将配置文件中的logfile自定义一个目录,以便于在第五步中启动出错的时候迅速定位错误。

(2)第五步如果启动不起来,如果是我上一篇博客中的错误,可以将IP改成环回地址。

(3)第四步如果redis版本是3以上,需要升级ruby版本为2以上,否则会在第六步中报错。

如何升级网上有很多,但是有坑。

pool.sks-keyservers.net 已经被弃用,所以在获取密钥的时候,你需要使用:

 gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

升级完成,再去下载redis 4.0.0,


redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,由于节点数较多,这里采用在一台机器上创建6个redis实例,并将这6个redis实例配置成集群模式,所以这里搭建的是伪集群模式,当然真正的分布式集群的配置方法几乎一样。

第一步:在/usr/local下创建文件夹redis-cluster,然后在其下面分别创建6个文件夾如下
(1)mkdir -p /usr/local/redis-cluster
(2)mkdir 8001、mkdir 8002、 mkdir 8003、 mkdir 8004、 mkdir 8005、 mkdir 8006

第二步:把之前的redis.con配置文件copy到8001下,修改如下內容:
(1)daemonize yes
(2)port 8001 (分别对每个机器的端口号进行设置)
(3)bind 192.168.0.60(必须要绑定当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况)
(4)dir /usr/local/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据。
(5) rluster-enabled yes(启动集群模式)
(6) cluster-config-file nodes-8001.conf (这里800x最好和port对应上)
(7)cluster-node-timeout 5000
(8) appendonly yes

第三步:把修改后的配置文件,分别 copy到各个文夹下,注意每个文件要修改第2、4、6项里的端口号,可以用批量替换:
:%s/源字符串/目的字符串/g
第四步:由于 redis集群需要使用 ruby命令,所以我们需要安装 ruby
yum install ruby
yum install rubygems
gem install redis --version 3.0.0

第五步:分别启动6个redis实例,然后检查是否启动成功
(1)/usr/local/redis/bin/redis-server /usr/local/redis-cluster/800*/redis.conf
(六个依次执行 星号替换成具体的1,2,3,4,5,6)
(2)ps -ef | grep redis 查看是否启动成功
第六步:在redis3的安装目录下执行 redis-trib.rb命令创建整个redis集群
(1) cd /usr/local/redis3/src
(2)/redis-trib.rb create --replicas 1 192.168.0.60:8001 192.168.0.60:8002 192.168.0.60:8003 192.168.0.60:8004 192.168.0.60:8005 192.168.0.60:8006 

第七步:验证集群
(1)连接任意一个客户端即可:redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口号)如:/usi/lpcal/redis/bin/redis-cli -c -h 192.168.0.60 -p 800*
(2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)


(3)进行数据操作验证


(4)关闭集群则需要逐个进行关闭,使用命令:
/usi/lpcal/redis/bin/redis-cli -c -h 192.168.0.60 -p 800* shutdown
PS:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。

这篇关于Redis-三主三从高可用集群搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962678

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject