【无标题】

介绍在Java操作Redis缓存时,Redis的初始化序列化器,

RedisTemplate<K, V> extends RedisAccessor 这个RedisAccessor implements InitializingBean 并重写了其中的afterPropertiesSet方法,而RedisTemplate又重写了afterPropertiesSet

其中:

if (defaultSerializer == null) {

   defaultSerializer = new JdkSerializationRedisSerializer(
         classLoader != null ? classLoader : this.getClass().getClassLoader());
}

指定了使用jdk二进制序列化器对存入键值进行序列化以增加交互性能和安全性

RedisTemplate

RedisTemplate是一个用于操作Redis数据库的强大工具类。它是Spring Data Redis框架中的一部分,旨在提供方便的API来与Redis进行交互。

RedisTemplate封装了与Redis数据库的交互逻辑,提供了一系列方法来进行数据的读取、写入和删除等操作。它提供了对字符串、列表、哈希、集合、有序集合等各种Redis数据结构的支持。

使用RedisTemplate,我们可以通过简单的方法调用来实现各种操作,如存储、获取和删除数据,设置过期时间,执行事务和管道操作等。同时,RedisTemplate还提供了对Redis的连接池和序列化机制的支持,以提高性能和灵活性。

RedisTemplate适合在Java应用程序中使用,尤其是与Spring框架结合使用。它可以方便地与其他Spring组件(如Spring Boot)集成,并通过配置文件进行参数的设置和调整。

初始化RedisTemplate时选用何种序列化器

在 Java 中通过 Jedis 或者 Lettuce 等 Redis 客户端库进行操作 Redis 数据库时,默认情况下,Redis 客户端库会使用 JDK 的默认二进制序列化器进行初始化。在Redis中,序列化器用于将数据从内存中的对象转换成可存储或传输的形式,以便在需要的时候能够重新恢复成对象。Redis提供了多种序列化器供你选择,比如默认的序列化器是简单的二进制序列化器,还有可读性更好的JSON序列化器,以及更高效的Msgpack序列化器等。

当你初始设置Redis的时候,你可以通过配置文件或者代码来选择使用哪种序列化器。通常情况下,选择合适的序列化器取决于你的具体需求。如果你希望在存储和传输数据时,保持最高的性能和空间效率,那么可以选择二进制序列化器。如果你更关注可读性和易于调试,可以选择JSON序列化器。

JDK 的二进制序列化器将对象转换为字节数组以进行存储。它可以处理几乎所有的 Java 对象,但存在一些缺点。其中最主要的问题是序列化后的数据较大,不够紧凑,并且对于复杂的对象关系,序列化和反序列化的性能可能不是很高。
如果你希望自定义 Redis 值的序列化方式,可以考虑以下两种方法:

  1. 实现自定义序列化器:你可以实现 Redis 的序列化接口,如 RedisSerializer,并在序列化器中自行处理二进制数据的转换。这样你就可以根据自己的需求对二进制数据进行序列化和反序列化操作。
  2. 使用第三方的序列化库:除了 JDK 的二进制序列化器外,还有许多开源的序列化库可以选择,例如 Jackson、Kryo、Fastjson 等。你可以将这些序列化库与 Redis 客户端库结合使用,通过配置指定使用的序列化器,以便更好地满足你的需求。
    选择序列化器时要考虑到数据的大小、读写性能、可读性等方面的权衡。
    无论选择哪种方式,你都需要确保客户端和服务器端使用相同的序列化方式,以便正确地进行序列化和反序列化操作。此外,记得在存取数据时处理好编码和解码的逻辑,以确保二进制数据的正确性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值