内存缓存(in-memory cache)
内存缓存(in-memory cache)
当建立一个大型Java应用时,引起性能问题大部分是延迟,延迟是指请求和响应之间的时间差,在一个分布式Java系统中引起延迟的原因有:
- 从磁盘上加装数据的IO延迟
- 跨网络加装数据的IO延迟。
- 在分布式锁上的资源争夺。
- 垃圾回收引起的暂停。
典型Ping时间是:本地机器是57µs;局域网是300 µs;从伦敦到纽约是100ms;对于1Gb网络,网络数据传输是每秒25MB – 30MB。对于10GB网络是每秒250MB – 350MB。使用SATA 3.0接口的SSD硬盘数据传输是每秒500-600MB。如果你有1G以上数据需要处理,磁盘延迟会严重影响应用性能。
硬件上最低延迟是内存,典型的内存缓存是每秒3-5 GB,能够随着CPU扩展。如果你有两个处理器,你就能每秒10GB,如果有4CPU就能获得 20GB. 有一个内存基准测试称为STREAM (http://www.cs.virginia.edu/stream/) 是测试许多计算机的内存吞吐量,一些在大量CPU帮助下能够实现每秒TB级别的吞吐量。
因此可以总结如下:
- 内存是快的: 为了高性能,你需要在内存中处理数据。
- 网络是慢的: 通过网络传输数据会严重影响性能,包括数据库连接池。
在许多应用中,应用的快速性能与数据实时更新需要寻找一个平衡点,有时你需要大胆地使用缓存,但是你可能会发现有旧脏数据现象发生,当然可以再抓取更新数据,但是可能会牺牲一些性能,你能,你可以鱼和熊掌兼得,那么就要花费购买更多硬件,增加软件的复杂性。
内存缓存原来作用是提高数据库访问性能。但是缓存不是数据库遮羞布,架构上缓存引入有着重要意义:状态对象:数据库的替代者。
缓存实际是内存,将状态置于内存而不是数据库,不但性能提升,还提高软件的可伸缩性和扩展性,直至轻松发展为分布式系统或云计算,这种缓存称为内存缓存(in-memory cache)或称 数据网格In-Memory-Data-Grid (IMDG);Java EE 7引入分布式 弹性缓存Elastic Caching ,作为其云核心战略的一部分。 云计算是一种计算和存储分离的模型,云计算本质是分布式可伸缩的内存计算,可见Amazon弹性缓存介绍。
当我们将DDD领域模型加载到内存中以后,我们就不再面向关系数据库中数据表编程,而是真正直接面向模型对象编程。Java内存模型优点:基于内存的并发模型,多线程机制,大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁。 多核并行计算模型 基于线程的异步模型(Domain Events)。
Twitter从Ruby转向JAVA的实践证明:Cache缓存 + JVM微调是Java/JVM的核心竞争力,这也是最容易被我们忽视的,因为很多使用Java系统(包括Spring + Hibernate)只是当作SQL语句的包装器来使用,负载主要集中在数据库上,根本不会使用In-memory Cache。
Jdon认为对象缓存恰好是领域模型和Java内存模型之间的衔接物,通过引入缓存,将领域模型落实到计算机平台上,如下图,基于此理念JdonFramework特点就是DDD + Cache,而Spring 3才刚刚加入缓存,两种框架相比可见关键性方向的不同:
内存缓存(in-memory cache)相关推荐
- 内存缓存(from memory cache)和硬盘缓存(from disk cache) 的区别
引言 ?命中强制缓存时,资源会显示 from memory cache or from disk cache 两者的区别 内存缓存(from memory cache) 内存缓存具有两个特点,分别是快 ...
- 聊一聊缓存 [from memory cache 和 from disk cache]
今天看到了一个问题,如果浏览器关闭了再打开, 请求还是from cache吗? 笼统的说yes 现在简单的来分析一下,首先,大家可以想一下,浏览器的缓存存放在哪里,如何在浏览器中判断强制缓存是否生效 ...
- disk cache(磁盘缓存) 和 memory cache(内存缓存)的区别
disk cache(磁盘缓存) 和 memory cache(内存缓存)的区别 同: 都属于强缓存,现在浏览器缓存存储图像和网页等(主要在磁盘上),而你的操作系统缓存文件可能大部分在内存缓存中. 使 ...
- 浏览器缓存:memory cache、disk cache、强缓存协商缓存等概念
文章目录 分类 memory cache disk cache Service Worker Push Cache 缓存过程 强缓存 1.Expires 2.Cache-Control Expires ...
- 浏览器缓存 from memory cache与from disk cache详解
在chrome浏览器中的控制台Network中size栏通常会有三种状态 from memory cache from disk cache 资源本身的大小(如:1.5k) 那么问题来了 三种区别在哪 ...
- 浏览器缓存(一):强缓存 MEMORY CACHE 和 DISK CACHE
关于memory cache 和 disk cache 随便浏览一个网站: 首次打开,或者开启浏览器的 Disable Cache(浏览器的Network下, 与Preserve log同级别),在s ...
- memory cache 和 disk cache
from memory cache 和 from disk cache 最近在优化Vue项目,因此打开网页,按下F12.发现很多js,css得下载来自于 memory cache,引申出问题:请求时浏 ...
- 缓存存在那些位置?缓存位置可分Service Worker、Memory Cache、Disk Cache、Push Cache四种
从缓存位置上来说分为四种,并且各自有优先级,当依次查找缓存且都没有命中的时候,才会去请求网络. Service Worker Memory Cache Disk Cache Push Cache Se ...
- java cache详解,Java内存缓存详解
1.缓存为什么要存在 应用服务器资源是有限的,数据库每秒中接受请求的次数也是有限的.如果利用有限的资源来提供尽可能大的吞吐量呢,一个办法:减少计 算量,缩短请求流程(减少网络io或者硬盘io),这时候 ...
- 读取文件慢_页面缓存(Page Cache)-内存和文件之间的那点事儿(下)
原文:https://manybutfinite.com/post/page-cache-the-affair-between-memory-and-files/ 翻译:RobotCode俱乐部 现在 ...
最新文章
- 官宣弃用Java 8!Kafka 3.0.0 新功能get
- 程序是什么--过滤器和状态机
- 关于IOCP完成端口的文章
- log4cxx编译过程–linux
- ubuntu16.04安装mysql-workbench
- 数据结构(一)——二叉树的性质与两种遍历方法
- python3 循环获取checkbutton_Python3 tkinter基础 Menu add_checkbutton 多选的下拉菜单
- Srs之Clion编译
- 2022趋势洞见之“云网端融合”
- access无法与wincc链接_wincc连接access
- 光谱数据计算CIE值(三刺激值、CIE1931、CIE1976、CCT)软件
- 如何写论文中的相关工作部分
- msdn.itellyou.cn文件类型大小统计
- 计算机桌面整洁,想让你的桌面变得整洁干净,这几款桌面整理软件别错过
- matlab output()函数,matlab 函数y=f(input,output)该如何实现?
- 康蒂尼药业再次冲刺港股:9个月营收4.4亿 龙磐创投是股东
- 键盘计算机的区别吗,机械键盘如何选购? 它和普通键盘有什么区别?
- 人工智能技术与物联网的融合
- 兄弟连高老师免费收徒
- 1010: 平行四边形