首页 > 其他分享 >springboot redssion 单机模式/集群模式/哨兵模式连接

springboot redssion 单机模式/集群模式/哨兵模式连接

时间:2023-08-18 11:00:11浏览次数:42  
标签:redisson springboot redis 模式 private org import config redssion

引入依赖:

 <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.10.7</version>
        </dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.7</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

springboot 集成:

import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.util.StringUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.StringCodec;
import org.redisson.config.Config;
import org.redisson.config.ReadMode;
import org.redisson.config.SentinelServersConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;
import java.io.IOException;

@Configuration
@Data
@Slf4j
public class RedisConfig {

    @Value("${redis.nodes:127.0.0.1:26379}")
    private String nodes;
    @Value("${redis.password:test}")
    private String password;

    @Value("${redis.timeout:2000}")
    private int timeout;

    @Value("${redis.masterName:mymaster}")
    private String masterName;

    private Boolean printConfig = true;

    private RedissonClient redissonClient;

    @PostConstruct
    public void init(){
        genRedissionClient();
    }

    private void genRedissionClient(){
        String[] nodeArray = nodes.split(",");

        Config config = new Config();
        StringCodec stringCodec = new StringCodec();
        config.setCodec(stringCodec);
        if (nodeArray.length == 1) {
            //单节点配置
            config.useSingleServer()
                    .setAddress(StrUtil.format("redis://{}", nodeArray[0]))
                    .setPassword(password)
                    .setTimeout(timeout);
        } else {
            //集群化配置
            SentinelServersConfig sentinelServersConfig = config.useSentinelServers();
            for (String node : nodeArray) {
                sentinelServersConfig.addSentinelAddress(StrUtil.format("redis://{}", node));
            }

            sentinelServersConfig.setTimeout(timeout);
            sentinelServersConfig.setMasterName(masterName);
            sentinelServersConfig.setReadMode(ReadMode.SLAVE);

            //设置密码
            if (StringUtils.isNotBlank(password)) {
                sentinelServersConfig.setPassword(password);
            }
        }
        if(printConfig) {
            try {
                //打印配置
                log.debug(config.toYAML());
            } catch (IOException e) {
                e.printStackTrace();
            }
            printConfig = false;
        }
        if(null != redissonClient){
            redissonClient.shutdown();
        }
        redissonClient = Redisson.create(config);
    }



}

application.yml:

redis:
  nodes: 127.0.0.1:6369,127.0.0.1:6368,127.0.0.1:6367
  password: 123abc
  masterName: sss

 

标签:redisson,springboot,redis,模式,private,org,import,config,redssion
From: https://www.cnblogs.com/goPush/p/17639846.html

相关文章

  • SpringBoot3集成Kafka
    目录一、简介二、环境搭建1、Kafka部署2、Kafka测试3、可视化工具三、工程搭建1、工程结构2、依赖管理3、配置文件四、基础用法1、消息生产2、消息消费五、参考源码标签:Kafka3.Kafka-eagle3;一、简介Kafka是一个开源的分布式事件流平台,常被用于高性能数据管道、流分析、数据集......
  • Prototype 原型模式简介与 C# 示例【创建型4】【设计模式来了_4】
    〇、简介1、什么是原型模式?一句话解释:  针对比较耗时的对象创建过程,通过原型的Clone方法来克隆对象,而非重新创建。原型设计模式(PrototypeDesignPattern)是一种创建型设计模式,其主要目的是通过复制已有对象来创建新的对象,而无需通过实例化类并初始化其属性。这种模式在需......
  • idea导入新springboot项目时 如何进行configure相关的配置 启动项目
    idea导入springboot项目运行教程前置要求①具备Java环境,并且可以通过Maven进行安装项目依赖;②具备IntelliJIDEA工具,推荐专业版,社区版也不影响;③具备Mysql5.7或以上版本数据库;④具备Navicat数据库可视化管理工具;⑤推荐使用GoogleChrome、Firefox浏览器idea导入项目的运行教......
  • SpringBoot
    1.回顾spring的AOP:(1)什么是AOP?面向切面编程,它是对OOP的一种补充技术。把业务代码和非业务代码分离。在不改变业务代码的前提下,可以对业务代码进行增强。(2)应用场景:(1)日志(2)权限校验(3)事务处理。(3)核心的概念:​【1】切面:​[2]切点:​[3]......
  • 7种创建方式,带你理解Java的单例模式
    本文分享自华为云社区《《Java极简设计模式》第01章:单例模式(Singleton)》,作者:冰河。今天给大家介绍Java极简设计模式中的单例设计模式(Singleton),用最短的篇幅讲述设计模式最核心的知识。单例设计模式看几个单例对象的示例代码,其中有些代码是线程安全的,有些则不是线程安全的,需要大家细......
  • springboot~ApplicationContextAware和Interceptor产生了真感情
    看着题目,有点一头污水吧,事实上,没有经历过,很难去说ApplicationContextAware在什么时候会用到,直接在一个bean对象里,你可以直接使用构造方法注入或者Autowired属性注入的方式来使用其它的bean对象,这在springboot里是非常自然的,也是天然支持的;但如果你的这个bean不是由springioc自动......
  • Springboot整合模版方法模式概念->原理优缺点->框架应用场景->企业级实战
    一、前言常见的设计模式有23种,我们不得不提到模板方法设计模式,这是一种在软件开发中广泛使用的行为型设计模式之一。它为我们提供了一种优雅的方式来定义算法的结构,并将算法的具体实现延迟到子类中!在本篇博客中,我们将深入探讨模板方法设计模式在SpringBoot中的应用。我们将从概念......
  • springboot 打包 时报错:The specified user settings file does not exist: F:\opt\
     解决方法:  ......
  • 【Spring boot】快速创建springboot项目
     1、文件-新建项目 2、选择spring填写信息 3、添加依赖包<后续可以在pom.xml中引入依赖包>  4、项目生成完成  ......
  • 备忘录模式-20
    概述备忘录模式(MementoPattern)又称Token,它在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存,在之后可以将该对象的状态恢复至保存时的样子。优点:提供了状态恢复机制。缺点:资源消耗大。classOriginator{privateStringstate;publicMementosave(......