跳转至内容
0
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Zephyr)
  • 不使用皮肤
折叠
JIKE社区
iceloI

icelo

@icelo
关于
帖子
251
主题
28
分享
0
群组
1
粉丝
6
关注
0

帖子

最新 最佳 有争议的

  • 分享自己用的V2Ray订阅
    iceloI icelo

    有clash 吗?

    风声鹤唳

  • 速撸,湖工大 EDU邮箱
    iceloI icelo

    来晚了

    风声鹤唳 edu邮箱 edu

  • 我分享一个小程序图床
    iceloI icelo

    @malaohu 两个月都没撑住

    即刻图床

  • 阿里云活动:呼朋唤友过暑假,呼唤一个人来可抽奖!
    iceloI icelo

    abandon

    活动优惠

  • 社工库开放注册了
    iceloI icelo

    之前账号本来能用的,后来换了个tg账号就关闭注册了,最近看到开放注册了,有需要的可以走我的邀请链接

    合租互助

  • 社工库开放注册了
    iceloI icelo

    🕵️‍♂️免费社工库机器人开放注册!(含AFF)
    🤖加入链接 https://t.me/Freeshegongku_bot/=TXzloGyZqNh

    合租互助

  • 微信转到WeChat后被频繁封号
    iceloI icelo

    同样转了,没有出现任何问题。。。

    水区乐园 微信 张小龙

  • Docker搭建Redis主从集群
    iceloI icelo

    原理

    为主节点master 配置一个节点 slave,不管slave 是否为第一次连接上 master,slave 都会发送一个sync 命令给master 请求复制数据。

    master接受到sync 命令后,会在后头进行数据持久化,通过bgsave 生成最新的rdb 快照文件,在生成 rdb快照期间 master 如果收到客户端的更新请求,master 会把这些修改的请求缓存在内存中。

    当持久化进行完毕之后,master 会把这份rdb文件数据集发送到slave,slave会把接收到的数据进行持久化成rdb,然后加载到内存中,然后master,在将之前缓存在内存中的命令发送到slave;

    当master 与 slave 之间的连接由于某些原因而断开,slave 能自动重连master,如果master收到多个slave 并发连接请求,master 只会进行一次持久化,而不是一个链接一次持久化,然后再把这一份持久化数据发送给多个并发连接的 slave

    当 master 和 slave 断开重连后,一般会对整份的数据进行复制,但是从redis 2.8 之后master 和slave 端口后重连支持部分复制。

    部分复制的过程:

    master会在其内存中创建一个复制数据用的缓冲队列
    image.png
    image.png

    主从复制的特点

    1. 同一个Master 可以拥有多个Slave
    2. Master 下的Slave 还可以接受同一架构中其他Slave 的连接与同步请求,实现数据的级联复制,即Master -> Slave -> Slave模式
    3. Master 以非阻塞的方式同步数据至Slave,这将意味着Master 会继续处理一个或者多个Slave 的读写请求
    4. 主从复制不会阻塞Master,当一个或多个Slave 与 Master进行初次同步数据的时候,Master 可以继续处理客户端发来的请求
    5. 主从复制具有可拓展性,即多个Slave 专门提供只读查询与数据的冗余,Master 专门提供写操作
    6. 通过配置禁用Master 数据持久化机制,将其数据持久化操作交给Slave完成,避免在Master中有独立的进程来完成此操作

    主从复制的优势

    • 避免Redis 单点故障
    • 做到读写分离,构建读写分离架构,满足读多写少的应用场景

    Docker 搭建 Redis 主从集群

    1、拉取 Redis 镜像

    docker pull redis
    

    2、创建文件和文件夹

    cd /usr/local/src 
    mkdir redis-cluster  
    cd ./redis-cluster 
    touch redis-cluster.conf
    

    向 redis-cluster.conf 写入 配置如下:

    port ${PORT}
    cluster-enabled yes
    protected-mode no
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    #对外ip
    cluster-announce-ip [ip] # 修改为你的ip地址
    cluster-announce-port ${PORT}
    cluster-announce-bus-port 1${PORT}
    appendonly yes
    

    3、创建 docker 网络

    创建一个 docker 网络,为了 Redis 中的集群通信

    docker network create redis-net
    

    4、使用 shell 生成配置信息

    进入到redis-cluster文件夹中

    cd /usr/local/src/redis-cluster
    

    生成conf和data目录,并生成配置信息

    for port in `seq 6000 6005`; 
    do 
      mkdir -p ./${port}/conf 
      && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf 
      && mkdir -p ./${port}/data;
    done
    

    生成6个文件夹,从 6000 到 6005 ,每个文件夹下包含data和conf文件夹,同时conf里面有redis.

    5、创建 Redis 镜像

    创建 shell 脚本

    vim start.sh
    

    编写 shell 脚本如下:

    for port in `seq 6000 6005`; 
    do 
      docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /usr/local/src/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/src/redis-cluster/${port}/data:/data  --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; 
    done
    

    启动容器

    sh start.sh
    

    查看容器

    docker ps
    

    如果容器的状态为up则,启动成功!否则使用

    docker logs -f --since 30m [CONTAINER ID] 
    

    来查看日志

    6、构建集群

    进入到任意一个容器

    docker exec -it CONTAINER ID  /bin/bash
    

    执行

    cd /usr/local/bin && redis-cli --cluster create ip:6000 ip:6001 ip:6002 ip:6003 ip:6004 ip:6005 --cluster-replicas 1
    

    请确保开放了 6000-6005和16000-16005 端口
    如果出现 waiting for the Cluster to join,那么应该是你端口没有开> 放完全。

    中途要输入 yes,确认要初始化。

    查看信息

    使用redis-cli进入任一端口

    redis-cli -h ip -c -p 6000
    

    查看节点消息

    cluster nodes
    

    查看集群信息

    cluster info
    

    总结

    记录一下使用服务器搭建Redis集群,后面可能(大概、也许)会搭建一个哨兵模式,下次见!

    原文链接:https://www.icelo.cn/java/Docker搭建Redis主从集群.html

    技术专区

  • vps域名大甩卖
    iceloI icelo

    后缀不值钱

    Jao易市场

  • 大佬们,怎么找pdf书籍?我想找PHP从入门到精通第五版,找了半天没找到
    iceloI icelo

    注册多个账号很难么?

    影音书籍

  • 白票edu邮箱最全教程 真几把反感炒作的
    iceloI icelo

    有成功的没

    活动优惠

  • 大佬们,怎么找pdf书籍?我想找PHP从入门到精通第五版,找了半天没找到
    iceloI icelo

    https://zh.z-lib.org/ 这个网站能找到大部分的PDF书籍

    影音书籍

  • XMind 全系列 "好用" 版下载
    iceloI icelo

    有无mac版本?

    软件资源 xmind

  • 又拍云有奖问卷抽取低代码书籍和小爱智能音响
    iceloI icelo

    没中,没啥想要的

    活动优惠 又拍云

  • 又拍云有奖问卷抽取低代码书籍和小爱智能音响
    iceloI icelo

    image.png

    活动优惠 又拍云

  • 京东618活动开始了,有脚本吗
    iceloI icelo

    https://www.icloud.com/shortcuts/4699d0afcd1d42d68f9fd82e3d39b8b9

    分享一个捷径

    活动优惠

  • #NFT 免费获取一个NFT
    iceloI icelo

    @miya hhhhhh

    活动优惠

  • 有没有稳定的直播源,求推荐!
    iceloI icelo

    https://dalao.ru/tv.txt

    软件资源

  • 阿里云云开发周年庆活动
    iceloI icelo

    筋膜枪 啊

    活动优惠 阿里云

  • 信息随便填,五块到手
    iceloI icelo

    今天继续抽image.png

    活动优惠
  • 1 / 1
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
百度网盘
1,890 个主题
连续剧
837 个主题
国产剧
639 个主题
夸克网盘
558 个主题
美剧
383 个主题
中国移动
307 个主题
动画片
281 个主题
动作片
234 个主题

162

在线

41.5k

用户

41.5k

主题

112.2k

帖子
  • 第一个帖子
    最后一个帖子