springboot整合redis集群

2年前 (2022) 程序员胖胖胖虎阿
272 0 0

哨兵集群
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

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);
    }

分片集群
springboot整合redis集群
一、编写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);
    }

版权声明:程序员胖胖胖虎阿 发表于 2022年10月3日 下午4:00。
转载请注明:springboot整合redis集群 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...