SpringBoot连接Redis-sentinel模式

Posted buggou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot连接Redis-sentinel模式相关的知识,希望对你有一定的参考价值。

一、引入pom

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

二、配置YML文件

server:
  port: 80
spring:
  redis:
    sentinel:
      nodes: 192.168.0.106:26379,192.168.0.106:26380,192.168.0.106:26381 //哨兵的ip和端口
      master: mymaster //这个就是哨兵配置文件中 sentinel monitor mymaster 192.168.0.103 6379 2 配置的mymaster

三、配置RedisTemplate模版

个人认为

setKeySerializer
setValueSerializer
不设置也可以,不过在使用的时候,需要自行将keyvalue 转换为json字符串后存入
@Configuration
public class RedisConf {
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)  {
        Jackson2JsonRedisSerializer serializer=new Jackson2JsonRedisSerializer(Object.class);
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(serializer); //设置key序列化
        template.setValueSerializer(serializer);//设置value序列化
return template; } }

四、测试(简单的model就省略了)

@RestController
public class RedisTestController {
    @Autowired
    RedisTemplate redisTemplate;

    @GetMapping("set")
    public void set(){
        redisTemplate.opsForValue().set("key1","123");
        User u=new User();
        u.setId(1);
        u.setName("name姓名");
        redisTemplate.opsForValue().set("user",u);
    }
    @GetMapping("get")
    public Map get(){
        Map map=new HashMap();
        map.put("v1",redisTemplate.opsForValue().get("key1"));
        map.put("v2",redisTemplate.opsForValue().get("user"));
        return map;
    }
}

 

以上是关于SpringBoot连接Redis-sentinel模式的主要内容,如果未能解决你的问题,请参考以下文章

Springboot集成druid数据库连接池

springboot jdbc 动态连接数据库

不会用SpringBoot连接Redis,那就赶紧看这篇

SpringBoot连接多RabbitMQ源

springboot项目连接数据报错

springboot连接数据库