J2Cache 2.7.2 版本更新了,该版本主要更新内容包括:
该版本值得关注的改进内容包括:
此次增加对两个 MQ 服务器的支持,是为了满足个别人认为 Redis 的 Pub/Sub 不够可靠的问题。但其实我个人强烈推荐用默认的 Redis Pub/Sub 来做 J2Cache 的缓存消息同步,没有必要引入新的服务,增加系统的复杂度。
相信多数人都会遇到这样情况,我们在使用诸如 Redis 缓存一些 Java 对象时,后期我们更新程序,对对象的属性进行调整时,会导致读取缓存数据的时候,出现反序列化失败的情况。所以一般我们在出现对需要缓存的 Bean 类做调整的时候,需要实现清除缓存数据,这给实际运维带来不必要的麻烦。
而最新的 J2Cache 2.4.2 版本解决了这个问题,在进行反序列化时,一旦出现因为类的版本不同导致的反序列化失败,那么该缓存数据会被启动清除,打印警告信息,并返回空对象给应用层。
此特性目前只针对使用默认的 fst 序列化器有效。
该版本增加了 redis 只读的模式,可通过配置启用
j2cache.L2.provider_class = readonly-redis
j2cache.L2.config_section = redis
请谨慎更新此版本,在 2.3.9 版本之前,存入 L2 的缓存数据都是不带失效时间的。而 2.3.9 版本的 generic 模式的 Redis 缓存数据写入时,都带有失效时间,失效时间跟 L1 的设置一致。如果你的应用不希望这么做,请不要升级。而我们不建议使用 hash 模式,hash 模式将在下一个版本中标注为废弃!
此外,从该版本开始,J2Cache 默认会缓存 null 对象,在此之前想要缓存 null 对象需要在方法中传递参数启用,因为这可能会导致你的应用逻辑有很多的不同,请谨慎审视。