redis的保存对象的策略化

spring-data-redis的序列化类有下面这几个:
GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化
Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer实际上是一样的
JacksonJsonRedisSerializer: 序列化object对象为json字符串
JdkSerializationRedisSerializer: 序列化java对象(被序列化的对象必须实现Serializable接口)
StringRedisSerializer: 简单的字符串序列化
GenericToStringSerializer:类似StringRedisSerializer的字符串序列化
GenericJackson2JsonRedisSerializer:类似Jackson2JsonRedisSerializer,但使用时构造函数不用特定的类
参考以上序列化,自定义序列化类


Jdk序列化速度快,占用空间大,不易查看,通过redis命令查看类似\xAC\xED\x00\x05t\x00\x011不方便
Hash最好还是用GenericJackson2JsonRedisSerializer


在用spring-data-redis做redis缓存的时候,指定RedisTemplate的key和value序列化时遇到的问题。


RedisTemplate的key指定成StringRedisSerializer序列化会报类型转换错误,如XXX类不能转换成String。
使用Jackson2JsonRedisSerializer序列化的时候,如果实体类上没有set方法反序列化会报错。


同时采用了StringRedisTemplate和RedisTemplate时注意
并且对存储String与存储Java对象采用不同的Template进行了简单的封装。


spring-data-redis默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。


StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。StringRedisSerializer


RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。JdkSerializationRedisSerializer


推荐将所有Template的key都采用String的序列化方式,而value的序列化方式可以采用不同的序列化方式。(jreids自动选择)(这样还有一个好处就是不必string的也采用jdk的序列化从而导常用数据格式致为了存储数据结构浪费空间)

原文:https://blog.csdn.net/pcwblover008/article/details/79915205 

<!-- 存储序列化 -->
    <!-- <bean name="stringRedisSerializer"
        class="org.springframework.data.redis.serializer.StringRedisSerializer" />
	<bean name="hashValueSerializer"
        class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer" />
	  -->

    <!-- 集群Resis使用模板 -->
    <bean id="clusterRedisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="redis4CacheConnectionFactory" />
        <!-- <property name="keySerializer" ref="stringRedisSerializer" />
        <property name="hashKeySerializer" ref="stringRedisSerializer" />
        <property name="valueSerializer" ref="stringRedisSerializer" />
        <property name="hashValueSerializer" ref="hashValueSerializer" /> -->
    </bean>


 

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务