Roh*_*hit 7 nhibernate caching
我目前使用自定义开发的ORM,并计划转向nhibernate.
目前,我使用L1 - 会话级缓存和L2 - 应用程序级缓存.
每当L1缓存从L2缓存请求一个对象时,它会检查数据库是否自上次加载后进行了修改,并且只有在它被修改后才加载.
我可以用NHibernate做到这一点.简而言之,缓存不会伤害我,因为它总是获取最新数据并节省对象创建和加载时间.
Mau*_*fer 14
恕我直言,如果它需要点击数据库,那么拥有L2缓存是没有意义的.这正是整个缓存点,避免尽可能多地击中数据库.
AFAIK没有像你描述的那样实现缓存策略,但是NHibernate L2缓存是完全可插拔的,所以你可以实现它.但是,由于我上面提到的原因,我不会这样做.
如果除了NHibernate之外还有其他应用程序或其他DAL攻击同一个数据库,那么获取过时数据只是一个问题.如果是这种情况,您可以使用SysCache2实现,该实现在内部使用SqlCacheDependencies在基础表中的数据发生更改时使缓存区域无效.
如果它是在服务器场中运行的单个应用程序,请使用Velocity提供程序.
如果只有一个NHibernate应用程序实例命中数据库,那么任何缓存策略都可以,并且您不必担心会获得过时的数据.
也可以看看:
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |