spring-data-redis key-value序列化

来源:互联网 发布:2015最红网络歌曲 编辑:程序博客网 时间:2024/04/30 22:39

spring-data-redis key-value序列化需要注意的问题

redisTemplate.boundHashOps(mapKey+rid).put(key+"", o);
其中的put里的可以必须转为String类型
这是由redis配置文件里决定的

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">        <property name="connectionFactory" ref="jedisConnectionFactory"></property>        <property name="keySerializer">            <bean                class="org.springframework.data.redis.serializer.StringRedisSerializer" />        </property>        <property name="hashKeySerializer">            <bean                class="org.springframework.data.redis.serializer.StringRedisSerializer" />        </property>        <property name="valueSerializer">            <bean                class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />        </property>        <property name="hashValueSerializer">            <bean                class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />        </property>    </bean>

以上为redis在spring中的常见配置,其中提供了两种序列化的方式 StringRedisSerializer 和 JdkSerializationRedisSerializer

这两序列化的方法都可以在 redisTemplate实例中获取到

final StringRedisSerializer srs = (StringRedisSerializer)this.redisTemplate.getKeySerializer();final JdkSerializationRedisSerializer jrs = (JdkSerializationRedisSerializer)this.redisTemplate.getValueSerializer();

这两种序列化都提供对对象或者值的 序列化和反序列化,如:

srs.serialize(user);srs.deserialize(srs.serialize(user));

同种序列化方式,对同一对象的操作是对应的,如:

Student stu = new Student();stu = srs.deserialize(srs.serialize(stu));


一般来说,StringRedisSerializer是作为key的序列化,而 JdkSerializationRedisSerializer 是作为value(在spring-data-redis中来说一般就是pojo对象)的序列化方式。



0 0
原创粉丝点击