第五章 设计程序架构 之 设计缓存策略

1. 概述

  本章内容包括:实现 页面输出缓存、数据缓存、程序缓存 以及 HTTP缓存。

2. 主要内容

  2.1 页面输出缓存

    缓存是开发高可用web程序的重要部分。

    ① 浏览器可以以预定义的时长保存一个HTTP GET请求。

[OutputCache(Duration=120, VaryByParam="Name", Location="ServerAndClient")]
Public ActionResult Index()
{
    Return View("Index",myData);
}

    ② Donut缓存

      Donut缓存是一种服务端技术,可以实现在缓存页面中保留一个动态的部分(Donut holes)。

      * ASP.NET Web forms 用 substitution控件来实现Donut缓存的功能。构建在其上的ASP.NET MVC4当然也可以使用。

    ③ Donut hole 缓存

      与Donut相反,Donut hole 缓存页面的指定区域。

      * ASP.NET MVC中通过child actions来支持Donut hole。

[ChildActionOnly]
[OutputCache(Duration=60)]
public ActionResult ProductsChildAction()
{
    // Fetch products from the database and
    // pass it to the child view via its ViewBag
    ViewBag.Products = Model.GetProducts(); 

    return View();
}

        *也可以把这个缓存属性应用到控件上。

      ④ 分布式缓存

        分布式缓存是指多服务器环境中的缓存。微软提供的一个解决方案是 Windows Server AppFabric。包含AppFabric 缓存服务。

      分布式缓存的同步问题以及信息安全问题也是需要考虑的。

     APPFabric还有一个好处就它可以启用session来保存数据。

       Windows Azure APPFabric 可以提供一个共享的缓存服务。

  2.2 数据缓存

    未完待续。。。

时间: 2024-08-06 12:46:43

第五章 设计程序架构 之 设计缓存策略的相关文章

第六章 设计程序架构 之 设计实现WebSocket策略

1. 概述 传统的网页的通信方式是请求-相应模式,每次请求-相应都是新的连接.连接的建立和断开也是需要消耗资源的. WebSocket是基于TCP协议,实现单个连接上的双向通信. 本章内容包括: 异步读写字符串和二进制数据.选择连接损耗策略.何时使用WebSocket. 2. 主要内容 2.1 异步读写字符串和二进制数据  HTTP polling 是传统的使用一系列AJAX请求来实现客户端服务端长久连接(表面上看起来是长久连接)的方式. HTTP long polling 是客户端使用AJAX

第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期

1. 概述 Windows Azure 是微软的云计算平台.用于 在微软数据中心 通过全局网络 生成.发布和管理应用程序. 本章内容包括 startup tasks 以及  实现 Start, Run 和 Stop 事件. 2. 主要内容 2.1 Windows Azure ① 提供 PaaS 和 IaaS 两种服务. PaaS 提供一个实际的计算平台,包括 操作系统.程序执行环境.数据库 和 web服务器. IaaS 是提供虚拟的机器. ② Windows Azure 有三种类型的解决方案:虚

【.NET Core项目实战-统一认证平台】第十五章 网关篇-使用二级缓存提升性能

原文:[.NET Core项目实战-统一认证平台]第十五章 网关篇-使用二级缓存提升性能 [.NET Core项目实战-统一认证平台]开篇及目录索引 一.背景 首先说声抱歉,可能是因为假期综合症(其实就是因为懒哈)的原因,已经很长时间没更新博客了,现在也调整的差不多了,准备还是以每周1-2篇的进度来更新博客,并完成本项目所有功能. 言归正传,本重构项目是在我根据实际需求重构,由于还未完全写完,所以也没进行压测,在2月份时,张善友老师给我留言说经过压测发现我重构的Ocelot网关功能性能较差,其中

第二章 设计程序架构 之 分布式应用

1. 概述 分布式应用是将程序的互相协作的各个模块放到不同的机器上,从而提高程序的性能和可靠性. 本章内容包括:集成web service.设计复合应用.分布式环境的session管理 以及 web farms. 2. 主要内容 2.1 集成web service 可以使用Asp.Net MVC4 创建 REST(Representation State Transfer) 服务. 使用 ApiController来返回序列化的数据.这个Controller根据Html头的Accepts属性来决

第四章 设计程序架构 之 状态管理

1. 概述 本章内容包括 如何选择状态管理架构.考虑扩展性.使用cookie和本地存储保存状态.web.config中配置 以及 实现sessionless状态. 2. 主要内容 2.1 选择状态管理架构 ① 首先需要考虑的问题是,你是否真的需要保存状态.无状态使得站点可以处理更多的并发访问. ② web forms 中有多种方式保存装填.最主要是就是ViewState.使用隐藏域来实现状态信息的传递. ③ MVC4程序中,状态信息可以保存在以下位置:Cache.Session.Cookies.

第一章 设计程序架构 之 分层架构

1. 概述 本章主要介绍 程序分层架构的主要组成部分,比如 数据访问方式 以及 Soc(separation of concern).其中重要的组成部分之一就是MVC架构.本章还将介绍MVC架构的组成部分. 2. 主要内容 2.1 数据访问 未完待续...

第十五章(附)分布式缓存-Memcached

一.概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二.适用场合 1.分布式应用.由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统. 2.数据库前段缓存.数据库常常是网站系统的瓶颈.数据库的大并发量访问,常常造成网站内存溢出.当然我们也可以使用Hibernate的缓存机制.但memcached是基于分布式的,并可独立于网站应用本身,所以更适合大型网站进行应用的

第五章 业务架构,5.4 智慧供应链(作者:昏河)

5.4 智慧供应链 前言 在面对天猫双11当天1207亿商品交易额(GMV)和6.57亿物流订单时,供应链作为电子商务企业运作的支柱,是如何有效地组织.协调和优化这个复杂且动态变化的供需网络,从而可以高效地支持2016年猫全球购物狂欢节呢? 1. 传统电子商务企业供应链 在2015年前,天猫供应链关注的重点是借助天猫电子商务交易平台,实现供应链交易过程的全程电子化.在这个阶段,天猫利用其供应链将上下游的企业和客户等进行全面的协同和交易撮合,对平台相关的信息流.资金流和物流进行监控和管理.在这种传

第五章:JVM内存分代策略

① Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. ②为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中.给堆内存分代是为了提高对象内存分配和垃圾回收的效率.试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象