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学到的东西--第四篇 缓存介绍
原文:http://www.cnblogs.com/selimsong/p/6010606.html