数据管理

关注公众号 jb51net

关闭
两级缓存框架J2Cache v2.8.4 红薯泣血版 官方版

两级缓存框架J2Cache v2.8.4 红薯泣血版 官方版

热门排行

简介

J2Cache是一款OSChina 目前正在使用的两级缓存框架。第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的 Ehcache 缓存数据丢失。

之前发了2.3.14 版本,只是根据用户反馈的异常来增加了默认构造函数,而 setter 方法的缺失产生的问题更为严重,它不会报错,而是直接让功能失效!现在再次紧急发布修复版本 2.3.15。

<dependency>
<groupId>net.oschina.j2cache</groupId>
<artifactId>j2cache-core</artifactId>
<version>2.3.15-release</version>
</dependency>

新版本包含的改进如下:

Spring Boot 模块关于 redis 数据读写的 bug 修复

处理了一些代码上的 Bad smell (这些问题是码云自带的代码质量检测发现的问题)

J2Cache数据读取流程

每次读数据的时候首先从Ehcache里先读,因为Ehcache在你的内存中。如果有的话直接返回,没有的话就通过通过网络去读redis的数据,如果数据有的话就把它塞到Ehcache里面,再返回。如果redis也没有,这时才读数据库的数据,然后同时把它的数据塞到Ehcache和redis里面,最后返回数据。

清除数据首先是要清除节点。其他节点在收到这个命令的时候,它会清除当前Ehcache里面对应的数据。这样的话清除某一个节点数据,然后通过广播把这数据给其他其他节点,同时也清楚这个数据,这样就保证了整个集群里面的缓存数据是同步的。

因为缓存数据要通过网络传输到redis上,所以我们要求所有的对象都必须是可序列化的。我们最终使用的是FST,因为它速度很快,生成的那个序列号体积也比较小,关键是它对你的项目没有任何侵入性。

测试方法

安装 Redis

修改 core/Java/j2cache.properties 配置使用已安装的 Redis 服务器

执行 build.sh 进行项目编译

运行多个 runtest.sh

直接在 runtest 输入多个命令进行测试

大家还下载了