redis序列化及各种序列化情况是什么
序列化基本
默认使用的是jdk序列化 会使字符串转义
在实际开发中,当我们要往redis中存对象时,都要进行序列化的。
当然,如果我们把对象给转换json字符串,此时存储的相当于是字符串。不序列化并不影响正常运行
但是,通常我们都要把我们创建的对象给序列化。
假如我们不序列化,存储对象
在实际开发中我们可能使用json去转换,我们还不想使用jdk序列化(默认的是jdk序列化) 。 此时我们就需要使用配置类了。我们创建一个redisTemplate对象,覆盖bean容器中原有的redis template对象。
序列化各种情况区分情况一:类没有序列化,直接存储一个javabean对象 结果:报错a.
b.
c.
d. 没有序列化,转换为json对象存储。 控制台正常,黑窗口乱码
e. 序列化,转换为json对象存储。 黑窗口乱码。
情况二:类序列化,直接存储一个javebean对象 结果:控制台正常显示,黑窗口乱码a.
b.
c.
情况三 使用jackon序列化(自定义的序列化) 内容正常输出。a.
b.
情况四 正常使用时,我们通常把我们的对象转换成json存储,并不会直接存储某一个java对象。a. 我们同上使用情况三的使用方式b. 所有的对象,都要进行序列化,即实现
Redis是目前最流行的内存数据库之一,被广泛应用于缓存、消息队列等场景。在使用Redis时,数据的序列化是一个重要的问题。本文将介绍Redis的默认序列化方式以及各种序列化情况,并探讨它们的应用场景。
默认的序列化方式
Redis的默认序列化方式是简单的字符串序列化。这意味着当我们存储一个对象时,Redis会将它序列化为一个字符串,并将这个字符串存储在Redis中。当我们获取这个对象时,Redis会将这个字符串反序列化为对象并返回。
这种方式的好处是简单、高效、通用。因为几乎所有的对象都能被表示为字符串,所以这种方式可以被广泛应用。但同时它也有一些缺点,在序列化复杂对象时可能会出现问题,如无法序列化二进制数据、无法处理循环引用等。
JSON序列化
JSON是一种轻量级的数据交换格式,被广泛应用于Web应用中。在Redis中,JSON序列化也是一种常用的序列化方式。与默认的字符串序列化方式相比,JSON序列化能够更好地处理复杂对象,并且支持二进制数据。
但其同时也有一些缺点,比如它不能处理循环引用,如果序列化的对象中存在循环引用,会导致序列化失败。
MessagePack序列化
MessagePack是一种轻量级的二进制序列化格式,它能够更高效地序列化复杂对象,并且支持压缩、快速、更小的数据传输。
在Redis中,MessagePack序列化方式也可以被广泛应用,它可以更好地处理二进制数据,但需要注意的是,MessagePack不能处理循环引用。
总结
以上是三种常用的Redis序列化方式,每一种方式都有其适用场景。默认的字符串序列化方式可以被广泛应用,但其在处理复杂对象时可能会出现问题;JSON序列化方式可以更好地处理复杂对象,并支持二进制数据,但其不能处理循环引用;MessagePack序列化方式可以更高效地序列化复杂对象,并支持压缩、快速、更小的数据传输,但也不能处理循环引用。
因此,在选择Redis序列化方式时,我们需要根据具体的需求和场景进行选择,以便达到最优的性能和效果。