加载中...
avatar
文章
42
标签
25
分类
21
首页
Java
Spring全家桶
  • Spring
  • SpringBoot
  • SpringCloud
JVM
源码
  • Mybatis
  • HashMap
归档
其他
  • 互联网电子书汇总
  • JAVA八股文指南
  • 历史
  • 相册
关于
Logo码农StormlingRedis系列(一)| 单机集群搭建3主3从
搜索
首页
Java
Spring全家桶
  • Spring
  • SpringBoot
  • SpringCloud
JVM
源码
  • Mybatis
  • HashMap
归档
其他
  • 互联网电子书汇总
  • JAVA八股文指南
  • 历史
  • 相册
关于

Redis系列(一)| 单机集群搭建3主3从

发表于2022-01-08|更新于2025-01-08|Redis
|总字数:576|阅读时长:2分钟|浏览量:

Redis集群部署-单主机 6节点 3M+3S

下载docker redis 镜像

docker pull redis:4.0
# 或者直接下载最新版redis镜像
docker pull redis

!!! 注意 redis 5.0以上创建集群不在使用ruby,因此如果使用最新版的redis 一下ruby部分内容直接跳过

在 /data下新建 redis-cluster 文件夹,然后创建 redis-cluster.tmpl 文件

# bind 127.0.0.1
protected-mode no
port ${PORT}
daemonize no
dir /data/redis
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}

编写初始化脚本 init-redis-cluster.sh,执行创建目录的任务

#! /bin/bash
# 下载redis镜像
docker pull redis
# 创建redis基础对应的虚拟网络
docker network create redis-net
# 创建redis集群环境所需要的目录 单机 6节点 3主3从
mkdir -p /data/cluster/redis
cp /data/redis-cluster.tmpl /data/cluster/redis

# 创建6个节点对应的目录 7001-7003 为master  7004-7006为slave
for port in `seq 7000 7005`; do
        mkdir -p /data/cluster/redis/$port/ \
        && mkdir -p /data/cluster/redis/$port/data \
        && PORT=$port envsubst < /data/cluster/redis/redis-cluster.tmpl > /data/cluster/redis/$port/redis$port.conf;
done

启动redis 编写redis启动脚本 create-redis-instance.sh

#! /bin/bash
# 运行docker redis 的 master 和 slave 实例
for port in `seq 7000 7005`; do
    docker run -d --net host \
    --privileged=true \
    -v /data/cluster/redis/${port}/redis${port}.conf:/data/redis.conf \
    -v /data/cluster/redis/${port}/data:/data/redis \
    --restart always --name redis-${port} \
    redis redis-server /data/redis.conf;
done

编写关闭并删除redis容器的脚本

#! /bin/bash
docker stop redis-7000
docker stop redis-7001
docker stop redis-7002
docker stop redis-7003
docker stop redis-7004
docker stop redis-7005

# 间隔5s后继续执行
sleep 5s
docker rm redis-7000
docker rm redis-7001
docker rm redis-7002
docker rm redis-7003
docker rm redis-7004
docker rm redis-7005

检查集群是否运行正常

进入7000 容器

docker exec -it redis-7000 /bin/bash

创建redis集群

redis-cli --cluster create \
172.162.0.202:6000 \
172.162.0.202:6001 \
172.162.0.202:6002 \
172.162.0.202:6003 \
172.162.0.202:6004 \
172.162.0.202:6005 \
--cluster-replicas 1


输入yes确认
文章作者: stormling
文章链接: http://www.stormling.top/posts/12892.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农Stormling!
Redis
cover of previous post
上一篇
MQ系列(一)| RabbitMQ 快速入门
RabbitMQ 快速入门 官网:https://www.rabbitmq.com/ 入门教程:https://www.rabbitmq.com/tutorials 最新版本:4.0.2 版本参考:JDK17、Maven Or Gradle 1、简介RabbitMQ是一个可靠且成熟的消息传递和流代理,易于部署在云环境、本地和本地机器上。它目前被全球数百万人使用。 2、为什么使用公司业务场景核心:解耦、异步、削峰 2.1、解耦A系统发数据给到BCD系统,如果E系统需要接入?C系统不需要了?A系统的负责人就需要来回修改接口对接其他系统。 如果使用MQ,A系统产生一条数据,发送到MQ中,那个系统需要数据自己去MQ消费。如果新的系统需要数据,直接从MQ中消费;某个系统不需要数据的话,取消消费这个MQ即可。这样A系统不需要考虑谁发送数据给谁,不需要考虑是否调用成功、失败超时等问题。 总结:通过一个MQ,Pub/Sub发布订阅消息模型,A系统就和其他系统彻底耦合了。 2.2.1、项目应用...
cover of next post
下一篇
Hexo系列(三)| 整合全局音乐
Hexo系列(三)| 整合全局音乐1、hexo 目录下安装npm install –save hexo-tag-aplayer 2、修改 hexo 目录下 Hexo 配置文件_config.ymlaplayer: enable: true asset_inject: false 3、修改 hexo 目录下主题配置文件_config.butterfly.yml找到: aplayerInject aplayerInject: enable: true per_page: true 找到:pjax pjax: enable: true 找到:inject 在 bottom 里添加 inject: head: bottom: - '<div data-id="60198" data-server="netease" data-type="song" data-fixed="true" data-autoplay="true">...
相关推荐
cover
2024-12-03
分布式系列(一) | Redis分布式锁
Redis实现分布式锁 乐尚代驾学习笔记-Redis司机抢单分布式锁 1、setnx+过期时间实现 @Override public void testLock() { //从redis里面获取数据 //1 获取当前锁 setnx Boolean ifAbsent = redisTemplate.opsForValue().setIfAbsent("lock", "lock"); //2 如果获取到锁,从redis获取数据 数据+1 放回redis里面 if(ifAbsent) { //获取锁成功,执行业务代码 //1.先从redis中通过key num获取值 key提前手动设置 num 初始值:0 String value = redisTemplate.opsForValue().get("num"); //2.如果值为空则非法直接返回即可 if (StringUtils.isBlank(value)) { ...

评论
ValineGitalk
avatar
stormling
文章
42
标签
25
分类
21
Follow Me
公告
欢迎大家来到Stormling博客
目录
  1. 1. Redis集群部署-单主机 6节点 3M+3S
    1. 1.1. 下载docker redis 镜像
    2. 1.2. 在 /data下新建 redis-cluster 文件夹,然后创建 redis-cluster.tmpl 文件
    3. 1.3. 编写初始化脚本 init-redis-cluster.sh,执行创建目录的任务
    4. 1.4. 启动redis 编写redis启动脚本 create-redis-instance.sh
    5. 1.5. 编写关闭并删除redis容器的脚本
    6. 1.6. 检查集群是否运行正常
    7. 1.7. 创建redis集群
最新文章
面向八股文面试专场
面向八股文面试专场2025-01-22
【每日早报】-2025-01-21 - 星期二
【每日早报】-2025-01-21 - 星期二2025-01-21
规则引擎 Drools 8+ 快速入门
规则引擎 Drools 8+ 快速入门2024-12-11
数据库系列(二) | Mybatis Plus 3.0+快速入门
数据库系列(二) | Mybatis Plus 3.0+快速入门2024-12-09
分布式系列(二) | Redisson分布式锁
分布式系列(二) | Redisson分布式锁2024-12-05
©2019 - 2025 By stormling
码农Stormling程序员,关注公众号【码农Stormling】回复【面试】获取最全面试pdf
搜索
数据加载中