文档章节

J2Cache缓存2分钟自动失效原因查找

********
 ********
发布于 2016/09/30 16:39
字数 429
阅读 179
收藏 0

最近在项目内又一次用了j2cache分布式缓存,遇到一个奇怪的问题,用RedisManager监控发现,过2分钟左右会自动清除缓存。

我分析后应该有这几种可能性:

1、redis服务器配置导致缓存定时清除

2、jedis配置导致缓存定时删除

3、ehcache配置导致缓存删除,同时J2Cache内部在被动清除ehcache缓存时也通知redis

4、程序内不小心调用了evict等方法导致缓存失效

 

step1、最先怀疑的是第4点,程序内不小心调用了清除缓存的方法。于是在J2Cache入口处设置断点本地调试,2分钟后缓存失效,未进断点,排除4

step2、接着怀疑第1点,redis服务器配置导致缓存定时清除。于是在程序内调用J2Cache设置缓存,再关闭进程,等待5分钟,缓存未消失,排除1

step3、接着怀疑第2点,jedis配置导致缓存定时删除。我看了下jedis的配置选项,没有关于缓存过期的配置,都是一些关于连接池的配置,基本排除3

step4、最后怀疑是不是J2Cache在一级缓存被动清除时也会通知redis,只能看看J2Cache源码了!

根据“Cache data expired...”这条log找到清除2级缓存的代码位置(RedisCacheChannel.java)

跟踪方法调用位置(EhCache.java)

看到这可以知道,是ehcache缓存失效时通知2级缓存失效导致的。

解决方法:J2Cache每个region对应ehcache.xml里的每个cache.name,根据实际情况配置缓存时间

© 著作权归作者所有

共有 人打赏支持
********

********

粉丝 13
博文 135
码字总数 19139
作品 0
福州
个人站长
J2Cache 2.3.12 发布,支持二级缓存只读模式

J2Cache 推出至今,已有多人希望能提供二级缓存只读模式,相当于应用只能从 Redis 二级缓存读取数据,而不允许写入任何数据,包括当一级缓存失效时也不能去清除二级缓存的数据。这样的开发者...

红薯
04/27
0
0
J2Cache 新增 Mybatis 支持模块,代码少到没 Bug

花了点时间撸了个 MyBatis 的 J2Cache 支持模块,含注释共八十多行代码 (J2CacheAdapter.java),再有 Bug 我就真的要退役了。 使用方法很简单,请看 https://gitee.com/ld/J2Cache/tree/mast...

红薯
05/15
0
30
使用 fastjson 实现类型无关的对象序列化

今天跟 fastjson 作者 @wenshao 聊了会才找到 fastjson 如何实现类型无关的对象序列化 代码如下: J2Cache 已经新增了这个特性,详情请看这里。 J2Cache 使用 JSON 进行缓存数据序列化的方式...

红薯
08/08
0
0
飞特商城后台管理系统引入开源中国二级缓存 J2Cache

2018已过半,向着目标与飞特一起加油 缓存是后台系统中必不可少的组件,灵活的缓存配置,可以使我们开发,运维变的更简单。这次我们整合了J2Cache ,它是 OSChina 目前正在使用的两级缓存框架...

18356087258
06/30
0
0
J2Cache 2.3.16 悄悄发布第三个 Bug 修复版本

实在无颜见江东父老啊,只好选择在星期天大家都在陪着男朋友玩耍的时候再次发布第三个 Bug 修复版本。 J2Cache 2.3.16 版本修复了当一级缓存使用 ehcache 或者 ehcache3 的异常: 修复了 Eh...

红薯
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
0
0
12.17 Nginx负载均衡

Nginx负载均衡 下面的dig看到可以返回2个IP,就是解析出来的IP,这样我们可以做负载均衡。 dig www.qq.com 1.vim /usr/local/nginx/conf/vhost/fuzai.conf 2.添加如下配置 upstream qq //定义...

芬野de博客
今天
0
0
SSE(Server Send Event 服务端发送事件)

package com.example.demo.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframe......

Canaan_
今天
0
0
jvm调优

1.jvm运行模式 client模式:启动快,占用内存少,jit编译器生成代码的速度也更快. server模式:主要优势在于代码优化功能,这个功能对于服务器应用而言尤其重要. tiered server模式:结合了client与...

Funcy1122
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部