Redis能够存储java对象吗?
Redis能够存储java对象吗?答案:是可以,但是你对象必须要序列化。redis没有办法把一个没有序列化的对象存储到redis中。package com.kuangstudy.entiy;import lombok.Data;public class User implements java.io.Serializable{private Integer id;private String ni
·
Redis能够存储java对象吗?
答案:是可以,但是你对象必须要序列化。
redis没有办法把一个没有序列化的对象存储到redis中。
package com.kuangstudy.entiy;
import lombok.Data;
public class User implements java.io.Serializable{
private Integer id;
private String nickname;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
这样太麻烦了,并且存储中文会有乱码,那如何解决呢?只能重新定义一个redisTemplate
package com.kuangstudy.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfiguration {
/**
* @return org.springframework.data.redis.core.RedisTemplate<java.lang.String, java.lang.Object>
* @Author 徐柯
* @Description 改写redistemplate序列化规则
* @Date 13:20 2021/5/20
* @Param [redisConnectionFactory]
**/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 创建一个json的序列化方式
GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 设置value用jackjson进行处理
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
// 设置key用string序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
更多推荐
已为社区贡献12条内容
所有评论(0)