一、API介绍
API是使用spring data redis
可以选择拿同步连接和异步连接
可以选择优先从从库里读数据
redisTemplate是高级API
jedisConnection是低级API
高级API依赖于低级API
二、maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</dependency>
三、使用
1.使用低级API:
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
connection.set("hello".getBytes(), "yangzhciheng".getBytes());
2.json序列化
Jackson2HashMapper jackson2HashMapper = new Jackson2HashMapper(objectMapper, false);
redisTemplate.opsForHash().putAll("sean", jackson2HashMapper.toHash(new Object()));
Map sean = redisTemplate.opsForHash().entries("sean");
Object o = objectMapper.convertValue(sean, Object.class);
3.自定义template
@Bean
public StringRedisTemplate myTemplate(RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(redisConnectionFactory);
stringRedisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
return stringRedisTemplate;
}
4.pub/sub的API使用
stringRedisTemplate.convertAndSend("ooxx", "hello");
RedisConnection connection = stringRedisTemplate.getConnectionFactory().getConnection();
connection.subscribe(new MessageListener() {
@Override
public void onMessage(Message message, byte[] pattern) {
System.out.println(message);
// TODO
}
}, "ooxx".getBytes());
如果有写错的地方,欢迎大家指正,感谢!