0
点赞
收藏
分享

微信扫一扫

springboot整合redis集群

谁知我新 2022-08-04 阅读 73

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

一、建立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

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

redis-server sentinel.conf --sentinel

redis6.x版本

redis-sentinel sentinel.conf

三、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

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

    @Bean
    public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
        return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
    }

分片集群
在这里插入图片描述
一、编写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

二、启动各个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

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

五、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

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

    @Bean
    public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
        return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
    }

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

举报

相关推荐

0 条评论