+
 新版

请问ehcache或者Caffeine怎么设置某一个key的过期时间???

Sylow 发布于 2021/09/08 17:56
阅读 8K+
收藏 0

如题,我现在搜的一批又一批的资料教程,都是统一配置。没办法针对到具体某个key

我想像Redis一样实现,某个key的过期时间

加载中
0
kakai
kakai

Caffeine,

Cache<String, RoomInfo> localCache = Caffeine.newBuilder() //本地缓存
            .maximumSize(1024)
            .expireAfterAccess(30, TimeUnit.MINUTES)
            .build();

Cache泛型的第二个参数是缓存类型限定,在限定类型下expireAfterAccess表示每次put后都更新过期时间

Sylow
Sylow
那每个缓存的过期时间 都不一样,这个能搞不??这种统一配置的方式看过了:sob:
0
爱De资格

redis可以,其他缓存基本都没这功能

Sylow
Sylow
那就很尴尬了,不能用redis是硬性需求。需要做一个本地的缓存,不用额外安装的...
0
zhaobohao
zhaobohao

我理解 ,你用caffeine,不同的过期时间,就生成不同的cache不就行了??又占用不了多少内存。

Sylow
Sylow
:sob:可能要十几二十个 妈耶
0
jzdayz
jzdayz

曲线救国,建议在包装一下存入的value,弄个类,记录下存入时间,设置的过期时间,拿出来的时候判断是否过期。

Sylow
Sylow
改动量有点大,不过貌似也可行,过两天我试试
0
osc_69656298
osc_69656298

使用 `expireAfter` 可以实现,在 expireAfterCreate 里面添加判断。

0
l
liangcha_h
caffeine本身自己可以支持,看如下
cache.policy().expireVariably().ifPresent(e->{
    e.put("aaa", 1, 1, TimeUnit.SECONDS);
    e.put("bbb", 2, 3, TimeUnit.SECONDS);
});
0
最后的夏天
最后的夏天

用hutool的TimedCache

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部