Docker搭建redis-cluster集群三主三备

环境准备

系统:centos7.7

redis:5.0.5

master1:192.168.33.9:7071

master2:192.168.33.10:7072

master3:192.168.33.11:7073

slave1:192.168.33.9:7074

slave2:192.168.33.10:7075

slave3:192.168.33.11:7076

一.搭建redis集群(以下步骤在每台服务器上都要执行)

1.>安装docker

yum -y install docker systemctl start dockersystemctl enable docker

2.>下载redis镜像

docker pull docker.io/redis:5.0.5

3.>下载redis官方配置文件redis.conf

wget http://download.redis.io/redis-stable/redis.conf

4.>对下载的redis.conf进行配置(因为是三主三从模式,因此端口号为7071~7076):

# bind 127.0.0.1 //加上注释#
protected-mode no //关闭保护模式
port 7071  //绑定自定义端口
#daemonize yes //禁止redis后台运行
pidfile /var/run/redis_7071.pid
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7071.conf //集群的配置 配置文件首次启动自动生成

5.>在/usr/local/下创建redis-master文件夹和redis-slave文件夹

mkdir /usr/local/redis-master
mkdir /usr/local/redis-slave

6.>把redis.conf配置文件分别复制到刚才创建的两个文件夹下

cp redis.conf   /usr/local/redis-master
cp redis.conf   /usr/local/redis-slave

7.>以docker run命令在三台虚拟机上以指定配置文件启动redis容器(每台虚拟机上启动一个redis-master容器,一个reidis-slave容器)

docker run -it --name=redis-master1    --privileged   -v /etc/localtime:/etc/localtime:ro   -v /usr/local/redis-master/data:/data   -v /usr/local/redis-master/redis.conf:/etc/redis/redis.conf    -p 7071:7071   -p 17071:17071    -d  docker.io/redis:5.0.5  redis-server /etc/redis/redis.conf --appendonly yes
docker run -it --name=redis-slave1     --privileged   -v /etc/localtime:/etc/localtime:ro   -v /usr/local/redis-slave/data:/data   -v /usr/local/redis-slave/redis.conf:/etc/redis/redis.conf    -p 7074:7074    -p 17074:17074    -d  docker.io/redis:5.0.5  redis-server /etc/redis/redis.conf --appendonly yes

备注:现在还是单独的节点,需要创建主节点并加入从节点!!!

二.连接集群(在任意一台服务器上执行)

1.>创建redis集群的三个master节点

docker run --rm -it zvelo/redis-trib create --replicas 0 192.168.33.9:7071 192.168.33.10:7072 192.168.33.11:7073

2.>指定三个对应的slave节点

docker run --rm -it zvelo/redis-trib add-node --slave --master-id  4364c57b6d04800ce5fbda1427dd70446d8e4d76 192.168.33.10:7075 192.168.33.9:7071
docker run --rm -it zvelo/redis-trib add-node --slave --master-id  f9458f269afa84249b74dcd9c3ea3aff7234848c  192.168.33.11:7076  192.168.33.10:7072
docker run --rm -it zvelo/redis-trib add-node --slave --master-id  a5bc2c9371b3883f15085a894edb357c614dc960 192.168.33.9:7074 192.168.33.11:7073

3.>查看集群状态

docker exec -it redis-master1 bash
redis-cli -c -h 192.168.33.9 -p 7071
cluster info

原文地址:https://www.cnblogs.com/lfl17718347843/p/12332396.html

时间: 2024-08-05 07:59:13

Docker搭建redis-cluster集群三主三备的相关文章

redis cluster 集群畅谈(三) 之 水平扩容、slave自动化迁移

上一篇http://www.cnblogs.com/qinyujie/p/9029522.html, 主要讲解 实验多master写入.读写分离.实验自动故障切换(高可用性),那么本篇我们就来聊了聊redis cluster 水平扩容以及自动化 slave 迁移. redis repliction 主从架构,一主多从更多的是为了提高 读QPS .而 redis cluster 集群中不建议或者没有说做物理的读写分离了,redis cluster 集群更强调的是通过master的水平扩容,来横向扩

docker 安装redis cluster集群

安装Redis镜像 docker pull yyyyttttwwww/redis 创建redis容器 docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash 查看网段 docker network ls 创建net2网络 docker network create --subnet=172.19.0.0/16 net2 创建redis容器 docker run -it -d --name r1

centos6下redis cluster集群部署过程

一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从就搭建好了.redis主从中如果主节点发生故障,不会自动切换,需要借助redis的Sentinel(哨兵模式)或者keepalive来实现主的故障转移. 今天介绍下redis cluster集群模式:redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redi

Redis Cluster集群搭建测试

# Redis Clutser # ## 一.Redis Cluster集群 ## 参考资料: http://www.cnblogs.com/lykxqhh/p/5690923.html Redis集群搭建的方式有多种,例如使用zookper等,但从redis3.0之后版本支持redis cluster集群,Redis Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互

Redis Cluster集群搭建与应用

1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. 节点的fail是通过集群中超过半数的节点检测失效时才生效. 客户端与redis节点直

redis集群与分片(2)-Redis Cluster集群的搭建与实践

Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.     2.节点的fail是通过集群中超过半

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个

centos7搭建ELK Cluster集群日志分析平台(三)

续  centos7搭建ELK Cluster集群日志分析平台(一) 续  centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logstash 5.4 安装kibana步骤 1.下载安装Kibana  ~]#wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-x86_64.rpm 如果链接失效,官网下载:https://www.elastic.co/down

Kubernetes 通过statefulset部署redis cluster集群

Kubernetes 通过statefulset部署redis cluster集群 作者: 张首富 时间: 2019-02-19 个人博客地址: https://www.zhangshoufu.com QQ群: 895291458 需要有redis基础 Redis集群架构图 每个Mater 都可以拥有多个slave.当Master掉线后,redis cluster集群会从多个Slave中选举出来一个新的Matser作为代替,而旧的Master重新上线后变成 Master 的Slave. 部署re

redis cluster 集群重启关闭

找遍了redis cluster官方文档,没发现有关集群重启和关闭的方法.为啥会没有呢,猜测redis cluster至少要三个节点才能运行,三台同时挂掉的可能性比较小,只要不同时挂掉,挂掉的机器修复后在加入集群,集群都能良好的运作,万一同时挂掉,数据又没有备份的话,就有大麻烦了. redis cluster集群中的节点基本上都对等的,没有管理节点.如果要让所有节点都关闭,只能关闭进程了# pkill -9 redis 把所有集群都关闭,然后在重新启动,会报以下错误 # redis-trib.r