【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;
}
}
相關連結
- redis分佈鎖
- Springboot集成Redis实现分布式锁
- 阿里華為等大廠的Redis分散式鎖是如何設計的?
- spring-boot-redisson 与 spring-data-redis 共存问题