Orchard提供了多级缓存支持,它们分别是:

  1. 应用程序配置级缓存ICacheManager:
  它用来存储应用程序的配置信息并且可以提供一组可扩展的参数来处理缓存过期问题,在Orchard中默认的过期Token有基于事件、文件系统和信号的。这个功能非常强大但是它的缺点是集群无效,因为它设计的目的不是为了经常变化的数据。
  另外它不依赖于内存压力,既当系统内存使用上升时,实体不会被删除,而其他Cache必须使用内存压力限制。
 
  2. NHibernate Caching:
  使用它阻止SQL的再次执行。因为它的数据访问器比较简单并且易扩展(比如在dictionary中检查一个string),所以它可以安全的用于集群通过一个集中的数据仓库,比如Memcached,而它本身也有一个Memcached的实现,需要通过配置使用它。
 
  3. Output Caching Using Contrib.Cache:
该模块的目标是提供一个类似ASP.NET的输出缓存,并且提供缓存头的管理(max-age,Cache-Control,ETag)。并且它有两个分布式存储器分别是数据库和Memcached。
 
  4. 业务数据使用Orchard.Caching缓存:
因为ICacheManager无法用于集群,如果其他模块需要跨服务器缓存业务数据,那么就需要用到这个模块,它只是一个简单通过Key来获取、存储数据,并通过名称或时间来设置过期。
 
参考:

Orchard详解--第四篇 缓存介绍的更多相关文章

  1. IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)

    IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...

  2. Orchard详解--第五篇 CacheManager

    上一篇文章介绍了Orchard中的缓存,本篇主要针对CacheManager进行分析,CacheManager在Orchard中用于存储应用程序的配置信息以及框架内部的一些功能支持,包括整个拓展及拓展 ...

  3. Orchard详解--第八篇 拓展模块及引用的预处理

    从上一篇可以看出Orchard在处理拓展模块时主要有两个组件,一个是Folder另一个是Loader,前者用于搜索后者用于加载. 其中Folder一共有三个:Module Folder.Core Fo ...

  4. Orchard详解--第七篇 拓展模块(译)

    Orchard作为一个组件化的CMS,它能够在运行时加载任意模块. Orchard和其它ASP.NET MVC应用一样,支持通过Visual Studio来加载已经编译为程序集的模块,且它还提供了自定 ...

  5. Orchard详解--第六篇 CacheManager 2

    接上一篇,关于ICacheContextAccessor先看一下默认实现,用于保存一个获取上下文,且这个上下文是线程静态的: public class DefaultCacheContextAcces ...

  6. Orchard详解--第三篇 依赖注入之基础设施

    Orchard提供了依赖注入机制,并且框架的实现也离不开依赖注入如模块管理.日志.事件等.在前一篇中提到在Global.asax中定义的HostInitialization创建了Autofac的IoC ...

  7. Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法

    首先来看一下C/C++中怎么创建Java对象:在JNIEnv中有两种方法是用来创建Java对象的: 第一种方法: jobject  NewObject(jclass clazz  , jmethodI ...

  8. OutputCache属性详解(四)— SqlDependency

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  9. 淘宝JAVA中间件Diamond详解(2)-原理介绍

    淘宝JAVA中间件Diamond详解(二)---原理介绍 大家好,通过第一篇的快速使用,大家已经对diamond有了一个基本的了解.本次为大家带来的是diamond核心原理的介绍,主要包括server ...

随机推荐

  1. python 2解决编码问题

    import sys reload(sys) sys.setdefaultencoding('utf-8') 另:python 3的open函数可以直接加encoding参数

  2. java泛型【收藏】

    什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个 ...

  3. BrainWeb: Simulated Brain Database使用说明

    BrainWeb: Simulated Brain Database使用说明 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ BrainWeb: Sim ...

  4. DWR第二篇之逆向Ajax

    1. 本示例在第一篇架构基础上添加代码 2. 首先修改web.xml里dwr的servlet配置: <!-- 配置dwr请求的servlet --> <servlet> < ...

  5. 【原创】驱动加载之OpenSCManager

    SC_HANDLE WINAPI OpenSCManager( _In_opt_ LPCTSTR lpMachineName, _In_opt_ LPCTSTR lpDatabaseName, _In ...

  6. JSON数据从MongoDB迁移到MaxCompute最佳实践

    数据及账号准备 首先您需要将数据上传至您的MongoDB数据库.本例中使用阿里云的云数据库 MongoDB 版,网络类型为VPC(需申请公网地址,否则无法与DataWorks默认资源组互通),测试数据 ...

  7. WebService SOAP

    <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http:// ...

  8. 插槽slot

    主要是让组件的可扩展性更强.1.匿名slot使用 //定义组件my-component <div class="myComponent"> <slot>&l ...

  9. Jenkins结合.net平台工具之Nuget

    我们刚刚通过msbuild在Jenkins环境下把一个控制台项目生成exe可执行文件,如果我们引用了nuget包,也能够正常生成,但是我们知道,我们在把项目提交到git或者svn上的时候并不包含这些包 ...

  10. pxe+kickstart自动化批量安装系统详解-技术流ken

    前言 pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用. 系统环境准备 系统版本:CentOS release 6.7 (Final) 内网 ...