RedisTemplate自定义序列化(String和JSON)
<String,Object>类型
- 在config包中新建RedisConfig类
- 添加代码
@Configuration
public class RedisConfig {
@Bean("strKeyRedisTemplate")
public RedisTemplate<Object, Object> strKeyRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
template.setConnectionFactory(redisConnectionFactory);
RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);
return template;
}
}
- 使用自定义序列化的RedisTemplate
@Service
public class MyService {
@Autowired
private StudentMapper studentMapper;
@Resource(name = "strKeyRedisTemplate")
private RedisTemplate<Object,Object> strKeyRedisTemplate;
public List<Student> select() {
List<Student> list = studentMapper.select();
strKeyRedisTemplate.opsForValue().set("student",list);
System.out.println(strKeyRedisTemplate.opsForValue().get("student"));
return list;
}
}
效果
JSON
- 在config包中新建RedisConfig类
- 添加代码
@Configuration
public class RedisConfig {
@Bean("jsonRedisTemplete")
public RedisTemplate<Object, Object> jsonRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
}
- 使用自定义的redistemplate
@Resource(name = "jsonRedisTemplete")
private RedisTemplate<Object, Object> jsonRedisTemplate;
public Person saveJSON() {
List<Course> list = new ArrayList<>();
list.add(new Course(1, "语文"));
list.add(new Course(2, "数学"));
list.add(new Course(3, "英语"));
Room room = new Room(521);
Person person = new Person(123456, "孙悟空", room, list);
jsonRedisTemplate.opsForValue().set("Person", person);
Person myPerson = (Person) jsonRedisTemplate.opsForValue().get("Person");
return myPerson;
}
效果: