• springboot整合redis集群


    哨兵集群
    在这里插入图片描述

    一、建立redis主从集群
    启动多个redis,其他从属redis通过slaveof IP号 端口号绑定主redis,只有主redis可以写数据,其他从redis只能读取数据,同时自动会进行数据同步
    二、搭建哨兵集群
    1.复制多份redis,每一个redis新建一个sentinel.conf文件,并写入下面的代码

    port 27001
    sentinel monitor mymaster 127.0.0.1 7001 2 //前面是主redis的IP最后的这个2是主观数大于等于2时为客观
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 18000
    
    • 1
    • 2
    • 3
    • 4

    2.启动命令,这里使用的window搭建的
    redis2.x版本

    redis-server sentinel.conf --sentinel
    
    • 1

    redis6.x版本

    redis-sentinel sentinel.conf
    
    • 1

    三、springboot整合redis哨兵集群
    1.yml
    这里的nodes是哨兵集群的IP地址

    spring:
      redis:
        sentinel:
          master: mymaster
          nodes:
            - 127.0.0.1:27001
            - 127.0.0.1:27002
            - 127.0.0.1:27003
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.配置LettuceClientConfigurationBuilderCustomizer的Bean
    其中ReadFrom.REPLICA_PREFERRED的方式是优先从slave节点读取数据,最后实在不行再从主redis中读取数据。

        @Bean
        public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
            return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
        }
    
    • 1
    • 2
    • 3
    • 4

    分片集群
    在这里插入图片描述
    一、编写redis.conf

    port 7001
    # 开启集群功能
    cluster-enabled yes
    # 集群的配置文件名称,不需要我们创建,由redis自己维护
    cluster-config-file "/a1/nodes.conf"
    # 节点心跳失败的超时时间
    cluster-node-timeout 5000
    # 持久化文件存放目录
    dir "/a1"
    # 绑定地址
    bind 0.0.0.0
    # 让redis后台运行
    daemonize no
    # 保护模式
    protected-mode no
    # 数据库数量
    databases 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    二、启动各个redis服务
    三、搭建集群
    redis5.x版本以上使用以下命令

    redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003
    
    • 1

    四、散列插槽、集群伸缩、故障转移(省略)

    五、springboot整合redis哨兵集群
    1.yml
    这里的nodes是哨兵集群的IP地址

    spring:
      redis:
        cluster:
          nodes:
            - 127.0.0.1:7001
            - 127.0.0.1:7002
            - 127.0.0.1:7003
            - 127.0.0.1:8001
            - 127.0.0.1:8002
            - 127.0.0.1:8003
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.配置LettuceClientConfigurationBuilderCustomizer的Bean
    其中ReadFrom.REPLICA_PREFERRED的方式是优先从slave节点读取数据,最后实在不行再从主redis中读取数据。

        @Bean
        public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
            return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
        }
    
    • 1
    • 2
    • 3
    • 4

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    MarkText如何实现图床-解决md上传到csdn图片不显示的问题
    数据处理生产环境_利用MurmurHash3算法在Spark和Scala中生成随机颜色
    为啥就业这么难——聊聊我在培训机构的所见所闻
    文件包含漏洞
    一起Talk Android吧(第四百二十回:贝塞尔曲线)
    【AI视野·今日CV 计算机视觉论文速览 第258期】Mon, 2 Oct 2023
    Hbuilder运行到浏览器里为啥空白?
    10个让您震撼的Linux终端命令集合
    立哥先进研发-API安全方案
    < Linux > 进程概念(1)
  • 原文地址:https://blog.csdn.net/m0_67402914/article/details/126114976