内存缓存(in-memory cache)

内存缓存(in-memory cache)

有些程序,需要保存一些数据在以备下次使用,然而在下次使用时再次获取,开销会比较大,如:数据源是数据库,就需要去数据库搜索,然后获取数据返回;数据源是储存在硬盘的文件,需要从硬盘一个个byte地将数据读取进内存;数据源是从外部API获取,则需要在调用API后等待回应才能获得数据,再次获取数据的开销比较大,不想每次都重新获取一次数据,可以将这些数据暂时存放在内存的缓存(in-memory cache)里,下次想用的时候就不用从外部再次搜索,直接拿来用就好了。
性能很重要的一个评价指标就是latency,在请求和响应之间的时间差,以一个Java分布式系统为例,引起延迟的原因有:
1.从磁盘上加载数据的IO延迟
2.跨网络加载数据的IO延迟
3.在分布式锁上的资源争夺
4.垃圾回收引起的延迟

内存比硬盘,网络IO要快很多,同时通过网络传输数据会严重影响性能,包括数据库连接池,内存缓存最开始的作用是提高数据库访问性能。内存缓存,就是内存,将状态置于内存不是数据库,不但性能提升,还提高软件的可伸缩性和扩展性,直至轻松发展为分布式系统或云计算,java ee 7 引入分布式弹性缓存elastic caching,云计算是一种计算和存储分离的模型,云计算本质是分布式可伸缩的内存计算。
twitter 从Ruby转向java实践证明:Cache缓存+JVM微调是具有核心竞争力,很多Java系统(Spring框架,mybatis框架,Hibernate框架等)只是当作SQL语句的包装器来使用,负载主要集中在数据库上,一般不使用in-memory Cache。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值