跳到主內容

【SpringBoot】Redis

出處 https://www.cnblogs.com/rb2010/p/12905470.html

pom.xml

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

二、設定YML檔(二選一)

1. sentinel模式

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

2.Cluster模式

spring:
  redis:
    cluster:
      nodes: 192.168.0.106:7000,192.168.0.106:7001,192.168.0.106:7002,192.168.0.106:7003

三、配置RedisTemplate模版

@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; } 
 
   // 讀寫分離
   @Bean
	public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer() {
 		return clientConfigurationBuilder -> {
      		clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
 			};
	}
 }

四、測試(簡單的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;
    }
}

相關連結