SpringBoot配置Redis的两种方式

前提1:都需要引入maven依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

前提2:需要在配置文件设置redis的地址、用户名密码

#redis配置信息
  redis:
      database: 0
      host: 
      password: 
      port: 6379
      timeout: 5000
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0

方式一:作为组件的形式引用

//先定义组件
@Component
public class RedisComponent {

    private Logger logger = LoggerFactory.getLogger(RedisComponent.class);

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public static StringRedisTemplate redis;

    //@PostConstruct注解效果:在Bean初始化之后(构造方法和@Autowired之后)执行指定操作。
    @PostConstruct
    public void getRedisTemplate(){
        redis = this.stringRedisTemplate;
        logger.info("初始化-------redisTemplate----");
    }

}
//然后在需要引用的地方调用RedisComponent.redis
@Component
public class HttpClientUtil {

    private StringRedisTemplate stringRedisTemplate = RedisComponent.redis;
    
    //判断是否存在key
	boolean flag = stringRedisTemplate.hasKey(key);
	
	//根据key获取value
	token = stringRedisTemplate.opsForValue().get(key);
	
	//存储key-value
	stringRedisTemplate.opsForValue().set(Standard.TOKEN_DIR + "wiki", data.toString());
}

方式二:设置启动类加载顺序优先注册redis

//设置项目启动需要加载的类
@Order(1)
public class StartupRunner implements CommandLineRunner {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Override
    public void run(String... args){
        HttpClientUtil.setStringRedisTemplate(stringRedisTemplate);
    }
}
//在项目的启动类中注册定义好的加载类
@SpringBootApplication
public class WikiLdapLoginApplication {

    public static void main(String[] args) {
        SpringApplication.run(WikiLdapLoginApplication.class, args);
    }

    @Bean
    public StartupRunner startupRunner(){
        return new StartupRunner();
    }
}
//在工具类中定义stringRedisTemplate
@Component
public class HttpClientUtil {

    private final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);

    private StringRedisTemplate stringRedisTemplate;

    public static void setStringRedisTemplate(StringRedisTemplate template) {
        stringRedisTemplate = template;
    }
    

参考资料:
https://blog.csdn.net/p1830095583/article/details/115218235
https://blog.csdn.net/u012578322/article/details/84112451

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在进行Spring Boot项目开发时,我们常常需要使用Redis作为缓存服务,而Redis集群则是为了满足高可用性和可扩展性而设计的。本文以Spring Boot2.0为例,介绍如何配置Redis集群。 一、引入redisson和lettuce连接池 在pom.xml文件中,我们需要引入redisson和lettuce连接池两个依赖: ``` <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 二、配置Redis集群 在application.yml中,添加Redis集群配置: ``` spring: redis: cluster: nodes: redis://localhost:7000,redis://localhost:7001,redis://localhost:7002 # Redis集群节点 ``` 三、配置Redis连接池 在application.yml中,添加Redis连接池配置: ``` spring: redis: timeout: 2000 # 连接超时时间 lettuce: pool: max-active: 8 # 最大连接数 max-idle: 8 # 最大空闲连接数 min-idle: 0 # 最小空闲连接数 ``` 四、配置RedisTemplate 在application.java中,添加RedisTemplate的Bean: ``` @Bean public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setDefaultSerializer(new StringRedisSerializer()); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } ``` 五、测试Redis集群 在Controller中注入RedisTemplate,执行set和get操作进行测试。 ``` @Autowired private RedisTemplate<String, Object> redisTemplate; @RequestMapping("/set") public String set(String key, String value) { redisTemplate.opsForValue().set(key, value); return "set success"; } @RequestMapping("/get") public Object get(String key) { return redisTemplate.opsForValue().get(key); } ``` 以上是关于如何在Spring Boot项目中配置Redis集群的方法。如果你的系统数据量较大,且并发量较高,那么Redis集群将是你应该考虑的一种选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值