代码之家  ›  专栏  ›  技术社区  ›  BT.

用于.NET的缓存框架

  •  4
  • BT.  · 技术社区  · 16 年前

    我的核心要求是缓存数据的可靠性,我曾考虑使用企业库缓存块DB数据存储进行持久化,以防工作进程重新启动。

    5 回复  |  直到 16 年前
        1
  •  4
  •   Robert C. Barth    16 年前

    public DtoThing GetSomeData(string parameters)
    {
       if (<check cache for data> == <not there>)
         return <get data from persistent store>
       else
         return <get data from cache>
    }
    

    如果您使用数据库作为缓存的后备存储,那么您基本上已经放弃了使用缓存的所有好处。当您说缓存需要可靠时,您是说更新需要一致,还是说数据需要始终在缓存中?如果是前者,则很容易确保发生这种情况,只要您以这样的方式编写软件,即只有一条路径可以更新数据,然后该路径可以在成功执行对持久数据存储的写入时使缓存失效。

        2
  •  5
  •   Eitan    13 年前

    你可以结账 GigaSpaces XAP.NET 这是一个完全分布式的内存中事务数据网格,它可以作为许多其他东西中的缓存。它也可以是您的实际应用程序服务器,允许您以分布式方式部署应用程序以及分布式缓存。它是一个高可用性、自我修复和自我管理的网格,您可以根据需要进行扩展。

        3
  •  3
  •   Andrew Hare    16 年前

    我有使用微软企业库缓存块的经验,它对我很好。EntLib配置有时可能有点冗长,但它完成了任务。你找别的东西有什么特别的原因吗?

        4
  •  1
  •   Lucas B    16 年前
        5
  •  0
  •   cpurdy    12 年前

    这类问题有很多潜在的解决方案。你提到过看NCache;如果有时间,请查看Oracle Coherence,这是NCache试图复制的产品;-)

    不过,我的建议是,除非您需要分布式缓存的好处,否则只使用单个进程(内存缓存)要简单得多。

    为了防止你好奇,关于NCache起源的一个早期讨论: http://www.theserverside.com/news/thread.tss?thread_id=43950

    推荐文章