`

谈谈网站架构的缓存

阅读更多

        缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代cpu越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都是用了缓存设计。

 

1、CDN。即内容分发网络,部署在距离终端用户最近的网络服务商,用户的网络请求总是先到达他的网络服务商哪里,在这里缓存网站的一些静态资源,可以就近以最快速度返回给用户,如视频网站和门户网站会将用户访问量大的热点内容缓存在CDN。

 

2、反向代理。反向代理属于网站前端架构的一部分,部署在网站的前端,当用户请求到达网站的数据中心时,最先访问到的就是反向代理服务器,这里缓存网站的静态资源,无需将请求继续转发给应用服务器就能返回给用户。

 

3、本地缓存。在应用服务器本地缓存着热点数据,应用程序可以在本机内存中直接访问数据,而无需访问数据库。

 

4、分布式缓存。大型网站的数据量非常庞大,即使只缓存一小部分,需要的内存空间也不是单机能够承受的,所以除了本地缓存,还需要分布式缓存,将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问缓存数据。

 

        使用缓存有两个前提条件,一是数据访问热点不均衡,某些数据会被频繁的访问,这些数据应该放在缓存中;二是数据在某个时间段内有效,不会很快过期,否则缓存的数据就会因已经失效而产生脏读,影响结果的正确性。网站应用中,缓存除了可以加快数据访问速度,还可以减轻后端应用和数据存储的负载压力,这一点对网站数据库架构至关重要,网站数据库几乎都是按照有缓存的前提进行负载能力设计的。

1
1
分享到:
评论

相关推荐

    高性能高并发服务器架构大全

     谈谈大型高负载网站服务器的优化心得! 8  Lighttpd+Squid+Apache搭建高效率Web服务器 9  浏览量比较大的网站应该从哪几个方面入手? 17  用负载均衡技术建设高负载站点 20  大型网站的架构设计问题 ...

    .NET工程师笔试题高级

    9.请列出常见的缓存方式,并简要概述其优缺点。 10.谈谈对通信加密解密的理解。 11.CTS、CLS. CLR分别作何解释? 12.PDB是什么东西?在调试中它应该放在哪里? 13.C#中Params是什么含义?有何用途? 14.说说对...

    问答系统的系统设计方案.pdf

    ⼆、接⼝设计风格 ⼆、接⼝设计风格 谈完了系统的架构风格,我们来谈谈接⼝设计的策略风格。⼀个后端系统主要任务就是设计好各种不同任务的底层接⼝,⼀个好的接⼝ 设计往往利于提⾼系统的解耦程度,⽽⼀个好的设计...

    javalruleetcode-docs:文档

    缓存 分库分表 读写分离 高并发系统 分布式系统 系统拆分 分布式服务框架 分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现...

    javalruleetcode-advanced-java:高级Java

    缓存 分库分表 读写分离 高并发系统 分布式系统 系统拆分 分布式服务框架 分布式锁 分布式事务 分布式会话 高可用架构 高可用系统 如何设计一个高可用系统? 限流 熔断 如何进行熔断? 熔断框架都有哪些?具体实现...

    javalruleetcode-doocs:文档

    java lru leetcode 互联网 Java 工程师进阶知识完全扫盲 本项目大部分内容来自中华石杉,版权归作者所有,内容涵盖、、、、等领域知识。我对这部分知识做了一个系统的整理,方便学习查阅。...Cloud,谈谈你对

    javalruleetcode-remake2:翻拍2

    java lru leetcode 互联网 Java 工程师进阶知识完全扫盲 本项目大部分内容来自中华石杉,版权归作者所有,内容涵盖、、、、等领域知识。我对这部分知识做了一个系统的整理,方便学习查阅。...Cloud,谈谈你对

    javalruleetcode-mianshi:mianshi

    java lru leetcode 互联网 Java 工程师进阶知识完全扫盲 本项目大部分内容来自中华石杉,版权归作者所有,内容涵盖、、、、等领域知识。我对这部分知识做了一个系统的整理,方便学习查阅。...Cloud,谈谈你对

    asp.net知识库

    Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...

    Redis面试题.pdf

    为什么选择单线程架构? 4. 如何在Redis中设置和获取键值对?请说明相关的命令。 5. Redis的持久化机制有哪两种?分别介绍RDB持久化和AOF持久化。 6. 什么是Redis的主从复制(Replication)?它的作用和实现原理是...

    最新Java面试宝典pdf版

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP ...

    Java面试宝典2010版

    10、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 11、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp...

    Java面试笔试资料大全

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP ...

    JAVA面试宝典2010

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP ...

    Java面试宝典-经典

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP ...

    java面试题大全(2012版)

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP ...

    Java面试宝典2012版

    17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC ...

    Hadoop实战中文版.PDF

    英特尔最新一代E5处理器相比前代至强5600处理性能提高了80%,同时,英特尔E5芯片中的DDIO技术也大大提高整体IO性能,这一技术能把IO数据包指向处理缓存,跳过内存,从而能够大大减少延迟,增强系统总带宽,还消除了...

    java面试宝典2012

    17.介绍一下Hibernate的二级缓存 135 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 137 19、Jdo是什么? 137 20、什么是spring的IOC AOP ...

Global site tag (gtag.js) - Google Analytics