Orchard CMS中缓存的使用

发布于:
Orchard CMS

Orchard缓存的优点和机制:

多级缓存:

Orchard缓存的多级缓存控制机制是非常值得称道的,他可以将有依赖关系的对象自动关联起来进行自动控制,比如:A对象是从B对象得到的,这时候如果B对象过期,那么A对象也会自动过期;这里可以看到所有的缓存是存放在一个ConcurrentDictionary结构里的,这个ConcurrentDictionary可以保证线程安全。

使用简单:

Orchard抛弃传统的传统get set的缓存方式,Orchard缓存的管理都只提供了一个Get方面没有其他Add、Update等等的东西.从缓存类里Get的方法的实现我们知道, 当程序无法根据TKey获取到结果的时候,就会创建一个新的结果同时保存到缓存里。

过期机制:

Orchard的缓存拥有强大的过期机制,实际上他的根本是一个失效令牌的机制,令牌只有一个属性: bool IsCurrent 如果IsCurrent==false时Cache过期,而客户代码可以通过实现不同的IVolatileProvider来实现各种不同的过期机制。

优雅的代码风格:

在Orchard.Framework的Caching目录下有18个文件,有兴趣的同学可以读读源码,写的非常不错。