java 静态变量缓存_Redis 与 Java 静态变量缓存去读记录

本文通过测试比较了使用Java静态变量和Redis缓存来存储4198条数据并根据Code进行查找的效率。测试显示,直接从Redis获取数据并在内存中遍历耗时4385ms和41728ms;将数据存储在Java静态变量中进行查找,耗时分别为229ms和307ms;使用Hashtable存储则进一步减少到207ms和224ms。预加载全部数据到Hashtable中可降低至204ms和210ms。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试数据:4198条的一个数据列表。

Redis采用Key Value 存储形式,直接缓存4198条的一个List对象。

下文说到的Code代表的是一个唯一的Key.

分别测试1000次、10000次读取耗时:

测试一:

通过Code获取对象,流程:从redis取出所有数据,遍历查找所需的数据,查询到后,放入redis,下次查找直接从redis返回:public DictionaryDto getDictionaryByCode(String code) {

DictionaryDto dictionaryDto = (DictionaryDto) setCacheKey(DICTIONARY_SINGLE_PREFIX + code).getCacheContent();

if (dictionaryDto == null) {

dictionaryDto = getAll().stream().filter(t -> t.getCode().equals(code)).findFirst().get();

setCacheKey(DICTIONARY_SINGLE_PREFIX + code).setCacheContent(dictionaryDto).save();

}

return dictionaryDto;

}

耗时:4385ms,41728ms

测试二:

通过Code获取对象,流程:从redis取出所有数据放入静态变量,下次查找出在静态变量中遍历查询,不再连接redis:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值