【问题标题】:What is the best NHibernate cache L2 provider?最好的 NHibernate 缓存 L2 提供商是什么?
【发布时间】:2011-01-09 09:10:55
【问题描述】:

我看到有很多。 NCache、Velocity 等,但我没有找到比较它们的表格。

考虑到以下标准,什么是最好的:

  1. 简单易懂。
  2. 最近正在维护中。
  3. 是免费的或有足够好的免费版本。
  4. 工作。

【问题讨论】:

    标签: c# .net caching nhibernate cpu-cache


    【解决方案1】:

    我不能说什么是最好的或最坏的,但我会分享我在 NCache 方面的经验,以防万一。

    免责声明:NHibernate 和我有一些分歧,我们已经分道扬镳了 :)

    • 表演很棒
    • 支持很棒,维护得很好(我说的是大约 6 个月前的状态)
    • 它有一个免费版本(以下注意事项)
    • 它工作得尽可能好,但我在实现基本 2 级缓存提供程序时遇到了问题……但这是 HQL 的 NHibernate 方面的问题,而不是 NCache 方面的问题。

    坏人 (For reference look here)

    • 免费版有它的局限性,毫无疑问,它们是战略性的,但对于我们的项目,我们最终无法使用免费版,因为一些关键功能不可用。以下限制适用于 FREE 版本。
      • 不包括基于键的依赖项
      • 不包含任何数据库依赖项
      • 没有 64 位版本

    这些是我在 2 个不同项目上的症结所在……但除此之外,没有任何问题,而且我对安装和配置的简单性感到满意。如果以上对您来说不是关键点/要求,我建议您试一试。我花了不到 10 分钟的时间来启动服务器并充当我们的 L2 缓存。

    【讨论】:

    • 感谢您对尼克的关注。让我问你一个问题:我在缓存中有一个类型为 A 的对象 A',它有一个类型为 B 的对象的集合 B。如果我采用不属于 Bs 的 B'' 并将其更改为现在应该属于对于 Bs,A'.Bs.Count 会改变吗?注意 A' 在缓存中。
    • @André Pena:是的,只要您在 both <class name="A"><bag name="Posts"> 下直接有 <cache usage="read-write"/>。如果您有 A 的本地副本并且没有重新获取 A,那么它不会,因为您正在处理单独的副本....但是如果您在任何时候获取 A(或添加到本地 A)之后加上B,它应该有一个准确的计数。
    • 我有机会使用 NCache,这很好。尼克的发现非常正确。我只是要补充一点,虽然基于密钥的依赖项、数据库依赖项和无 64 位版本没有 express 版本,但它们都存在于企业版和专业版中。参考请阅读edition comparisonNHibernate L2 cache
    • 我正在尝试确定 nhibernate 是否合适。你介意在 NHibernate 中分享你有分歧的地方吗?谢谢。
    • @dan_l - 自这个答案以来发生了很多变化,所以我的问题可能不再相关......但是配置部分(您需要一个生成器来为任何缩减项目创建 XML那时...不确定这是否仍然正确)而且性能也不存在,Linq2SQL 也是如此,您需要付出大量成本才能将数据转换为对象。例如:现在在 Stack Overflow 上工作,我们在 Dapper 中进行了所有新的开发,这得益于我们对直接 SQL(用于调优等)的热爱和一个非常简洁的方法调用,以尽可能快地恢复您的数据。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2011-04-11
    • 2021-09-22
    • 1970-01-01
    相关资源
    最近更新 更多