资讯专栏INFORMATION COLUMN

深入分布式缓存 -- 学习总结

pkwenda / 3029人阅读

摘要:浏览器缓存根据一套与服务器约定的规则进行工作检查确定副本是否最新,通常只要一次会话。数据库缓存是一类特殊的缓存,是数据库自身的缓存机制。存储成本当,系统会从数据库或者其他数据源取出数据,然后放入存储,这个过程需要时间和空间,这就是缓存成本。

什么是缓存

存储在计算机上的一个原始数据复制集,以便于访问。 --维基百科

缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西,介于应用开发跟系统开发之间。
根据软件系统中所处位置的不同,缓存大体可以分为三类:

客户端缓存

服务器缓存

网络中的缓存

根据规模和部署方式缓存也可以分为:

单体缓存

缓存集群

分布式缓存

客户端缓存

页面缓存:

页面自身的缓存或者离线应用缓存,页面自身对某些元素或全部元素进行缓存,或服务端将静态页面或动态页面的元素进行缓存。

页面缓存是将之前渲染的页面保存为文件,当用户再次访问时可以避开网络连接,从而减少负载,提升性能和用户体验。

浏览器缓存:

根据一套与服务器约定的规则进行工作:检查确定副本是否最新,通常只要一次会话。

补充------

app缓存

网络中的缓存

web代理缓存

边缘缓存

服务端缓存

数据库缓存

数据库属于IO密集型的应用,主要负责数据的管理及存储。数据库缓存是一类特殊的缓存,是数据库自身的缓存机制。

以mysql为例,mysql中使用了查询缓冲机制,将SELECT语句和查询结果存放在缓冲区中,以后对于同样的SELECT语句,讲直接从缓存区中读取结果,以节省查询时间,提高了sql查询的效率。

平台级缓存

在系统开发中,适当的使用平台级缓存往往可以取得事半功倍的效果。

在这里指用来写带有缓存特性的应用框架,或者可用于缓存功能的专用库。

应用级缓存

当平台级缓存不能满足系统性能要求时,就要考虑使用应用级缓存了。应用级缓存,需要开发者通过代码来实现缓存机制,这里是nosql的胜场,无论是Redis还是MongoDB,以及Memcached都可以作为应用级存储的重要技术。

缓存算法:在实现缓存应用的时候,需要了解缓存技术中的几个术语。

缓存命中:请求的数据在缓存中。

没有命中:cache miss,如果缓存中还有存储空间,那么没有命中的对象会被储存到缓存中来。

存储成本:当cache miss,系统会从数据库或者其他数据源取出数据,然后放入存储,这个过程需要时间和空间,这就是缓存成本。

缓存失效:当存储在缓存中的数据需要更新时,就以为着缓存中的这一数据失效了。

替代策略:当缓存没有命中时,并且缓存容量已经满了,就需要在缓存中去除一条旧数据,然后加入一条新数据,替代的选择就有替代策略决定。

Least-Recently-Used(LRU):最近被请求最少的对象

Least-Frequently-Used(LFU):访问次数最少的对象

SIZE:占用空间最大的对象

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62019.html

相关文章

  • java篇

    摘要:多线程编程这篇文章分析了多线程的优缺点,如何创建多线程,分享了线程安全和线程通信线程池等等一些知识。 中间件技术入门教程 中间件技术入门教程,本博客介绍了 ESB、MQ、JMS 的一些知识... SpringBoot 多数据源 SpringBoot 使用主从数据源 简易的后台管理权限设计 从零开始搭建自己权限管理框架 Docker 多步构建更小的 Java 镜像 Docker Jav...

    honhon 评论0 收藏0
  • 后台开发常问面试题集锦(问题搬运工,附链接)

    摘要:基础问题的的性能及原理之区别详解备忘笔记深入理解流水线抽象关键字修饰符知识点总结必看篇中的关键字解析回调机制解读抽象类与三大特征时间和时间戳的相互转换为什么要使用内部类对象锁和类锁的区别,,优缺点及比较提高篇八详解内部类单例模式和 Java基础问题 String的+的性能及原理 java之yield(),sleep(),wait()区别详解-备忘笔记 深入理解Java Stream流水...

    spacewander 评论0 收藏0
  • 后台开发常问面试题集锦(问题搬运工,附链接)

    摘要:基础问题的的性能及原理之区别详解备忘笔记深入理解流水线抽象关键字修饰符知识点总结必看篇中的关键字解析回调机制解读抽象类与三大特征时间和时间戳的相互转换为什么要使用内部类对象锁和类锁的区别,,优缺点及比较提高篇八详解内部类单例模式和 Java基础问题 String的+的性能及原理 java之yield(),sleep(),wait()区别详解-备忘笔记 深入理解Java Stream流水...

    xfee 评论0 收藏0
  • 后台开发常问面试题集锦(问题搬运工,附链接)

    摘要:基础问题的的性能及原理之区别详解备忘笔记深入理解流水线抽象关键字修饰符知识点总结必看篇中的关键字解析回调机制解读抽象类与三大特征时间和时间戳的相互转换为什么要使用内部类对象锁和类锁的区别,,优缺点及比较提高篇八详解内部类单例模式和 Java基础问题 String的+的性能及原理 java之yield(),sleep(),wait()区别详解-备忘笔记 深入理解Java Stream流水...

    makeFoxPlay 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<