Centos Docker部署Redis集群三主三从

2023-10-11 20:30

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

一、安装Docker

yum install docker-engine

二、编辑节点配置文件

  1. 创建文件夹

    cd /home
    # 节点一:6370端口
    mkdir -p redis-cluster/redis-6370/conf
    mkdir -p redis-cluster/redis-6370/data
    # 节点二:6371端口
    mkdir -p redis-cluster/redis-6371/conf
    mkdir -p redis-cluster/redis-6371/data
    # 节点三:6372端口
    mkdir -p redis-cluster/redis-6372/conf
    mkdir -p redis-cluster/redis-6372/data
    # 节点四:6373端口
    mkdir -p redis-cluster/redis-6373/conf
    mkdir -p redis-cluster/redis-6373/data
    # 节点五:6374端口
    mkdir -p redis-cluster/redis-6374/conf
    mkdir -p redis-cluster/redis-6374/data
    # 节点六:6375端口
    mkdir -p redis-cluster/redis-6375/conf
    mkdir -p redis-cluster/redis-6375/data
    
  2. 编辑配置文件

vim redis-cluster/redis-6370/conf/redis.conf

配置文件内容(6个节点及目录内的配置文件,都可以下面配置为模板,更改端口号和集群通信端口号即可):

# 端口号
port 6370# 设置客户端连接后进行任何其他指定前需要使用的密码
requirepass 123456
## 当master服务设置了密码保护时(用requirepass制定的密码)
# slav服务连接master的密码
masterauth 123456# daemonize no 将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no# 任何主机都可以连接到redis
bind 0.0.0.0# 是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no# 开启AOF
appendonly yes# 集群开关,如果配置yes则开启集群功能,此redis实例作为集群的一个节点,否则,它是一个普通的单一的redis实例。
cluster-enabled yes# 集群配置文件的名称,此配置文件不能人工编辑,它是集群节点自动维护的文件,主要用于记录集群中有哪些节点、他们的状态以及一些持久化参数等,方便在重启时恢复这些状态。通常是在收到请求之后这个文件就会被更新。
cluster-config-file nodes.conf# 节点互连超时的阀值。集群节点超时毫秒数
cluster-node-timeout 15000# 以下三个配置参数静态设定节点的运行参数, 包括对外IP, 普通Redis命令端口和集群桥接端口# Redis Cluster 不支持NATted环境和IP地址或TCP端口被重映射(remapped)的环境。
# Docker使用一种名叫port mapping的技术, 运行于Docker容器内的程序实际对外使用的端口和监听的端口可不相同. 为了让Docker 兼容Redis Cluster, 需要使用Docker的host network模式。
#为了使Redis集群在这样的环境中工作,静态每个节点都知道需要其公共地址的配置
cluster-announce-ip 192.168.3.111# 客户端连接端口
cluster-announce-port 6370# 总线端口为普通端口port+10000,所谓Cluster bus, 即使用一种二进制协议(binary protocol)进行集群内点对点(node-to-node)通讯, 包括节点失效检测, 配置更新, 故障转移(failover)认证等
cluster-announce-bus-port 6370

三、启动节点

  1. 启动节点一

    docker run -d --name redis-6370 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6370/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6370/data:/data \
    redis redis-server /etc/redis/redis.conf
    
  2. 启动节点二

    docker run -d --name redis-6371 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6371/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6371/data:/data \
    redis redis-server /etc/redis/redis.conf
    
  3. 启动节点三

    docker run -d --name redis-6372 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6372/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6372/data:/data \
    redis redis-server /etc/redis/redis.conf
    
  4. 启动节点四

    docker run -d --name redis-6373 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6373/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6373/data:/data \
    redis redis-server /etc/redis/redis.conf
    
  5. 启动节点五

    docker run -d --name redis-6374 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6374/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6374/data:/data \
    redis redis-server /etc/redis/redis.conf
    
  6. 启动节点六

    docker run -d --name redis-6375 \
    --net host --privileged=true \
    -v /home/redis-cluster/redis-6375/conf/redis.conf:/etc/redis/redis.conf \
    -v /home/redis-cluster/redis-6375/data:/data \
    redis redis-server /etc/redis/redis.conf
    

四、配置集群

  1. 进入一个节点容器

    docker exec -it redis-6370 bash

  2. 配置集群节点

    redis-cli -a 123456 --cluster create 192.168.3.111:6370 192.168.3.111:6371 192.168.3.111:6372 192.168.3.111:6373 192.168.3.111:6374 192.168.3.111:6375 --cluster-replicas 1
    

五、验证集群节点

redis-cli -h 192.168.3.111 -p 6370 -a 123456
cluster nodes

这篇关于Centos Docker部署Redis集群三主三从的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消

Redis中的Lettuce使用详解

《Redis中的Lettuce使用详解》Lettuce是一个高级的、线程安全的Redis客户端,用于与Redis数据库交互,Lettuce是一个功能强大、使用方便的Redis客户端,适用于各种规模的J... 目录简介特点连接池连接池特点连接池管理连接池优势连接池配置参数监控常用监控工具通过JMX监控通过Pr

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动