前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >016 进程内缓存和进程外缓存的对比

016 进程内缓存和进程外缓存的对比

作者头像
上善若水.夏
发布2018-09-28 11:33:49
1.8K0
发布2018-09-28 11:33:49
举报
文章被收录于专栏:上善若水上善若水

对比redis缓存和本地内存

这两者是什么,

在java应用中,对于访问频率比较高,又不怎么变化的数据,常用的解决方案是把这些数据加入缓存。相比DB,缓存的读取效率快好不少。java应用缓存一般分两种,一是进程内缓存,就是使用java应用虚拟机内存的缓存;另一个是进程外缓存,现在我们常用的各种分布式缓存。相比较而言,进程内缓存比进程外缓存快很多,而且编码也简单;但是,进程内缓存的存储量有限,使用的是java应用虚拟机的内存,而且每个应用都要存储一份,有一定的资源浪费。进程外缓存相比进程内缓存,会慢些,但是,存储空间可以横向扩展,不受限制。

进程内缓存和进程外缓存,各有优缺点,针对不同场景,可以分别采用不同的缓存方案。对于数据量不大的,我们可以采用进程内缓存。或者只要内存足够富裕,都可以采用,但是不要盲目以为自己富裕,不然可能会导致系统内存不够。

数据访问时间的数量级别

事件

时间

1

从数据库中读取一条数据(有索引)

十几毫秒

2

从远程分布式缓存读取一条数据

0.5毫秒

3

从内存中读取1MB数据

十几微妙

插入一组数据做位参考

平均单次请求的时间,机器配置相关(i5 8GB的pc)

使用的缓存

t=某次的数据,测试的共次数,av=平均数 ns

本地缓存

t=285907391ns,times=2500,av=468464138

redis缓存

t=465590284ns,times=2653,av=961629872

结论

单次请求的时间 本地缓存小于redis 缓存

测试的方法:

50个线程,每个线程中连续请求10次

使用的缓存

本地缓存

请求500,返回500,时间9748ms

redis缓存

请求500,返回437,时间 12000ms

结论

支持的并发请求数 本地缓存大于 使用redis缓存

参考链接
  1. java应用本地缓存
  2. Java学习之ConcurrentHashMap实现一个本地缓存
  3. 高效的找出两个List中的不同元素
  4. SqlServer基础之(触发器)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据访问时间的数量级别
  • 插入一组数据做位参考
  • 参考链接
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档