缓存

【*】什么是缓存

  • 缓存就是将数据暂时存储在内存上,当用户需要数据时,可以直接从缓存中读取,不需要读取数据库
  • 缓存是容器存放在内存中,为了保证持久化机制(关机会清空内存),将缓存中的值持久化到硬盘中(通过日志缓存文件的方式),缓存都会做持久化机制    

【*】为什么使用缓存

使用缓存的目的就是为了减轻服务器的压力,减少网络传输请求

【*】缓存的分类

  • 客户端缓存
    • 页面缓存
    • 浏览器缓存
    • App客户端缓存
  • 网络缓存
    • 代理缓存
    • cdn缓存
  • 服务器缓存
    • 数据库缓存
    • 平台存级缓存

【*】缓存框架的分类

  • 单点缓存框架(又叫jvm缓存框架,内置缓存框架)

只能针对于单个的jvm,缓存的容器存放在jvm中,重点,每个jvm互不影响  ehcache、oscache是单点缓存框架

ehcache详情请点击链接 https://blog.csdn.net/qq_39175358/article/details/104726499

  •  分布式缓存框架

共享缓存,缓存需要跨语言,例如reids

reids详情请点击链接 https://blog.csdn.net/qq_39175358/article/details/104726679
【*】客户端缓存

  • 1.客户端用到缓存的地方

浏览器,刚开始访问网站比较慢,因为没有缓存,当再次访问的时候速度就会变快,浏览器会自带缓存技术,比如缓存图片

  • 2.使用cdn也会做一些图片静态资源的缓存
  • 3.代理缓存

使用nginx实现缓存,使用cdn来做之后很少会使用内存来做缓存了,因为cdn是程序的入口

  • 4.客户端缓存的目的

当请求到服务器端之后,那么请求的一些静态资源就会在本低文件缓存一份,当在次访问的时候,会直接读取本地文件,能够快速的响应 【APP客户端】,安卓,IOS底层也会有缓存技术,安卓最上层是Java语言,最底层是c语言

【*】如何写单个jvm缓存框架

Session其实也算是缓存,里面也有Key,Value和Map比较相似,所以可以根据Map写一个缓存框架

1.缓存的概念偏向于临时的概念,不会永久存储的

2.既然要做缓存所以需要一个容器,根据上面Map作为缓存的容器,推荐使用concrrentHashMap,因为线程是安全的

3.设置缓存有效期思路

        需要两个线程,一个线程存储缓存的数据,一个线程做定时任务,判断缓存中那些数据超超出设置的有效期,并且将过期的缓存删除

    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperLBY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值