标签归档:缓存

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个文件,有兴趣的同学可以读读源码,写的非常不错。

阅读全文 Orchard CMS中缓存的使用

linux的dns缓存,NSCD服务(转)

这两天做压力测试的时候发现,用webbench压域名要比压ip地址慢好几倍,而且压域名的时候nginx并发量也很低.反复测试了好多遍,怀疑时间是花在dns解析上.在/etc/hosts中做手动解析:
1
echo “192.168.1.12 piaoxiao.net” >> /etc/hosts
之后再压,速度果然正常了.

阅读全文 linux的dns缓存,NSCD服务(转)