`

浅谈网站缓存架构

阅读更多

缓存的主要目的是降低数据库的读写压力,是维护大型网站稳定运行必不可少的优化手段之一,下面,结合我近段时间的工作经验,谈谈我对缓存设计的一些想法:

缓存主要分为页面缓存和数据缓存:

页面缓存

分为整体缓存和局部缓存

优点:

  1. 实现简单
  2. 能有效降低数据库的查询压力

缺点:

  1. 一个网页的各个区域的内容更新频率及对实时性的要求不一样,结果为了迁就更新频率的区域,要让整个页面都跟着更新,导致性能的浪费.
  2. 局部缓存能解决上一个缺点,但如果页面区域过多,维护这么多个区域的更新策略将是件痛苦的事
  3. 只能缓存最终生成的HTML,一些动态数据无法缓存,如用户登录后的session
  4. 只能减轻数据的读取压力,无法降低写入的压力

综合考虑上面的优缺点,将页面缓存在memcached里面显得意义不大,我决定将页面缓存主要通过生成静态文本来实现,而数据缓存则用memcached来实现.

数据缓存

memcached使用key-value来存储数据, 通过简单的get/set方法即可实现缓存的读取/写入,并且可以针对每个缓存项设置数据过期时间.

读取缓存

需要读取缓存的数据,只需从数据库取出并将其封装在一个对象里,再将该对象存入memcached即可实现数据的缓存,从而有效地降低数据库的读取压力.

写入缓存

有些数据写入很频繁(如页面的访问量统计),这时就可以将待更新的数据先放入memcached中,等累积到一定程度后再一次性写入数据库,就拿访问量统计来说,可以每访问1000次后将数据写回数据库一次,从而有效降低数据库的写入压力,并且,memcached提供了原子加法,能有效解决线程安全上面的问题.

分布式缓存

当网站规模变大,势必要增加多台memcached服务器,那么,如何有效地规范数据的缓存方案呢?
一种方案是根据业务规则来区分,不同的业务放在不同的服务器里,不过这种方案很难保证压力的均衡,并且很难扩展.
另一种方案是用类似于”取模”的方法来实现.可以将键值经过特定的算法运算后,对N取模,余数便是最终要存入的memcached服务器的编号.其中,N表示服务器的数量,以后要扩展,只需把N做相应的增加即可.

分享到:
评论

相关推荐

    浅谈网站架构中缓存的应用

    网站架构中缓存的应用.人人网网站架构中缓存的应用.人人网

    Web应用系统的缓存技术浅谈

    【缓存技术浅谈】 缓存技术是一种优化性能的关键手段,尤其在Web应用系统中扮演着重要角色。本文将探讨缓存的基本概念、其在Web应用系统中的作用以及各种类型的缓存技术。 缓存,也称作Cache,是高速缓冲存储器,...

    缓存技术浅谈

    缓存技术浅谈 基于Web应用的系统架构图 缓存技术分类

    浅谈分布式数据库架构.pdf

    服务器收到请求后,首先会查看SQL计划缓存中是否已经存在执行计划,如果存在,则无需重新编译,直接使用缓存中的计划执行。如果没有执行计划,则会进行语法验证,检查SQL语句是否有语法错误,如有错误则返回错误信息...

    缓存技术浅谈PPT简介

    例如,在Web应用架构中,从数据库到应用服务器,再到Web服务器和客户端浏览器,每一层都可能存在速度差距。缓存技术包括操作系统磁盘缓存、数据库缓存、应用程序缓存、Web服务器缓存和客户端浏览器缓存。 操作系统...

    浅谈互联网架构.pdf

    为了优化高性能,大型网站架构会使用缓存技术,包括使用KV(键值)缓存系统缓存热点数据、利用CDN缓存静态资源、反向代理服务器缓存资源,以及启用浏览器缓存。此外,网站架构还会利用集群技术提高负载能力和降低...

    浅谈cache memory 王齐.pdf

    在讨论x86架构下的缓存(Cache Memory)时,首先我们需要理解什么是缓存以及它为何重要。缓存是一类快速存储设备,它位于处理器和主存(主内存)之间。缓存的主要功能是存储处理器经常使用的指令和数据。由于CPU执行...

    浅谈CRM云技术架构.pdf

    浅谈 CRM 云技术架构.pdf 本文档主要讨论了 CRM 云技术架构的设计和实现,特别是 SaaS CRM 的架构设计。随着公有云的出现,大型企业和中小企业都能够通过公有云效劳来省去自身的数据中心升级改造工作。但是,SaaS ...

    你需要大“仓库”吗? 浅谈CPU二级缓存容量.pdf

    浅谈CPU二级缓存容量”指的是探讨现代计算机处理器中的二级缓存(L2 Cache)对于整体性能的影响。本文主要围绕CPU二级缓存的作用、工作原理以及不同厂商(Intel和AMD)的处理器如何处理一级和二级缓存之间的数据...

    架构革新高效可控_浅谈数据库服务和架构演讲V7.pdf

    【标题】:“架构革新高效可控_浅谈数据库服务和架构演讲V7.pdf”主要探讨了数据库服务和架构的演进,以及如何通过技术创新解决开发者在实际工作中遇到的问题。该演讲内容涉及关系型数据库、分析型数据库、图数据库...

    浅谈微处理器架构.pdf

    本文主要探讨了微处理器架构及其对处理器性能的影响,特别是在提高指令并行度方面的改进。微处理器架构是计算机设计中的核心部分,它决定了指令如何被执行,对处理器性能和芯片面积有重大影响。文章提到了几个关键的...

    架构革新高效可控_浅谈数据库服务和架构演讲V7.zip

    在“架构革新高效可控_浅谈数据库服务和架构演讲V7.zip”这个压缩包中,包含了一份关于数据库服务和架构的演讲稿,标题为“架构革新高效可控”。这份文档可能详细探讨了如何通过架构的创新来提升数据库服务的效率和...

    浅谈电商支撑系统中分布式缓存管理技术的研究与实现.pdf

    在现代的电子商务环境中,分布式缓存管理技术是支撑系统高效运行的关键因素。分布式缓存能够在多台服务器上存储数据的副本,从而提高数据访问的性能和系统的可用性。在面对高并发场景时,分布式缓存能够显著降低...

    浅谈面向云计算数据中心的新型解压缩方法.pdf

    实现时,首先创建主机端与FPGA端进行数据通信的缓存,并将其存放在FPGA开发板的DDR内存上,然后传输需要解压缩的数据到缓存中。设置FPGA端运行时所需的参数信息后,启动FPGA端的解压缩算法,最后从FPGA端DDR内存的...

    浅谈ORACLE数据库的性能优化.pdf

    DBA需要定期监控系统状态,通过调整参数、优化代码和架构设计来确保数据库的最佳运行状态,满足大量用户的需求,并预防可能出现的性能瓶颈。同时,持续学习和了解最新的Oracle技术及最佳实践,是保持数据库性能...

    Oracle-RAC原理浅谈PPT课件.ppt

    Oracle RAC 原理浅谈 Oracle RAC(Real Application Cluster)是一种高可用、高性能的集群解决方案,能够提供高可用性、高性能和高扩展性的数据库服务。下面是 Oracle RAC 的一些关键技术点: 一、 Oracle RAC ...

    缓存应用的实践分享,项目中实际使用

    ### 一、缓存技术浅谈 缓存的基本目标是解决不同硬件或软件之间速度差异的问题,以提高数据传输效率。在Web应用架构中,从浏览器缓存到数据库缓存,每个层次都有可能利用缓存来提升性能。常见的缓存技术分类包括...

Global site tag (gtag.js) - Google Analytics