Docker(十):Redis三主三从(扩容、缩容)

2024-04-20 02:28

本文主要是介绍Docker(十):Redis三主三从(扩容、缩容),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:启动6台Redis

# privileged=true 获取宿主机root权限
# --cluster-enabled yes 开启redis集群
# --appendonly yes 开启持久化
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6381
docker run -d --name redis-node-2--net host --privileged=true -v /data/redis/share/redis-node-2:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6382
docker run -d --name redis-node-3--net host --privileged=true -v /data/redis/share/redis-node-3:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6383
docker run -d --name redis-node-4--net host --privileged=true -v /data/redis/share/redis-node-4:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6385
docker run -d --name redis-node-6--net host --privileged=true -v /data/redis/share/redis-node-6:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6386

二:配置主从关系

ipconfig
docker exec -it redis-node-1 /bin/bash# --cluster-replicas 1 为每一个master分配一个slave,输入yes同一
# 每台master对应哪台slave是系统自动随机分配的,可能每次都不一样
redis-cli --cluster create 192.168.0.1:6381 192.168.0.1:6382 192.168.0.1:6383 192.168.0.1:6384 192.168.0.1:6385 192.168.0.1:6386 --cluster-replicas 1# 检查集群情况
redis-cli --cluster check 192.168.0.1:6381# 查看集群信息, -c: 表示集群方式连接
redis-cli -p 6381 -c
cluster info
cluster nodes
set k1 v1

三:扩展成四主四从

扩容的时候槽位点开始范围减小,结束范围不变,将每台开始的范围缩小给新的服务器。

docker run -d --name redis-node-7--net host --privileged=true -v /data/redis/share/redis-node-7:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6387
docker run -d --name redis-node-8--net host --privileged=true -v /data/redis/share/redis-node-8:/dataredis:6.0.8--cluster-enabled yes--appendonly yes--port 6388
docker exec -it redis-node-7 /bin/bash# 加入集群
redis-cli --cluster add-node 192.168.0.1:6387 192.168.0.1:6381# 重新检查集群情况
redis-cli --cluster check 192.168.0.1:6381# 重新分配槽号,输入4096,输入 6387对应的节点编号,输入all
redis-cli --cluster reshard 192.168.0.1:6381# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381# 配置slave和master关系
redis-cli --cluster add-node 192.168.0.1:6388 192.168.0.1:6387 --cluster-slave --cluster-master-id 节点id(6387节点)# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381

四:缩容

  1. 先删除从节点 6388
# 删除节点
redis-cli --cluster del-node 192.168.0.1:6388 节点id# 重新分配槽位,
# 输入4096, 
# 输入那个节点id来接收receiving4096,
# 输入source node: 6387的节点id
# 输入 done
redis-cli --cluster reshard 192.168.0.1:6381# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381# 删除master
redis-cli --cluster del-node 192.168.0.1:6387 节点id# 检查3主3从
redis-cli --cluster check 192.168.0.1:6381

这篇关于Docker(十):Redis三主三从(扩容、缩容)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c