Redis的集中序列化方式
reids的数据存入用的方式存入
一般redis都用于缓存,redis的方式是<Key,Value>的方式使用.有两个使用的方式,分别是StringTemplet和 RedisTemplate。StringTemplet是 RedisTemplate的子类。
首先我们可以看看redis的序列化有哪几种方式。
1:StringTemplet,默认的序列化方式是String类型的,也就是说无论是key还是value都是放入的String,这种方式相对比较简单,序列化的方式就是StringRedisSerializer方式。
2:RedisTemplate就是key和value都是Object的类型,也就是说都可以装对象。默认的序列化方式为:JDkSerializationredisSerializer的方式。这种方式对于开发者而言,是及其不友好的,无论是序列化后的内容,不利于开发者查看,序列化的时间也比相对Jackson2JsonRedisSerializer的长。所以我们更推荐使用Jackson2JsonRedisSerializer的方式进行序列化。这里是redis的集中序列化的方式。
(有小伙伴会问,既然Jackson2JsonRedisSerializer的方式利于开发者使用,时间快,还需要其他的序列化的作用干嘛呢?这样举个例子。大家都知道我我们编程中有很多编码,为啥不直接使用UTF-8的编码呢?我们读起来也方便,但是那是对于我们人来说读取方便,如果是机器读的是二进制编码,所以我们有各种各样的编码,根据不同的系统(或者其他东西)选择合适的编码。不知道这样举列子懂了没有)
3:一般而言,我们使用key为字符串,value为对象的情况相对较多。可以进行如下设置。
这里我们将key设为string类型的序列化方式,将value设置为对Jackson2JsonRedisSerializer对象的序列化方式,然后存入redis中,最后从redis中取出来。这里需要注意取出来的内容不能求强转为自己想要的对象,这里需要利用fastJson的方式进行转换。先转换为字符串,再根据parseObject方法转为我们的User类型。(这里如果直接将redis中获取的数据直接toString,然后调用parseObject方法依然会报错)。
更多推荐
所有评论(0)