我有一个ASP.NET应用程序,它广泛使用ASP.NET缓存API来缓存常用数据。另外,我使用基于轮询的sql缓存依赖来跟踪到期。
当前设计的缺点是,在Web场环境中,每个Web服务器都有自己的数据缓存,而不是跨服务器共享。
有没有办法可以简单地迁移代码以跨多个服务器共享数据缓存?
我曾经想过使用memcached,但这对sql缓存依赖无效,对吗?
还有其他解决方案吗?
答案 0 :(得分:8)
您是否看过Windows Server AppFabric(以前的Velocity)。
答案 1 :(得分:2)
您可以使用以下选项 -
使用此处描述的方法在Web场中同步数据 - http://www.eggheadcafe.com/articles/20030420.asp
使用分布式缓存方法
使用企业库缓存。
答案 2 :(得分:2)
在我看来,Windows Server AppFabric正是您所寻找的。 (AKA“Velocity”)。来自introductory documentation:
Windows Server AppFabric提供了一个 分布式内存应用程序 用于开发的缓存平台 可扩展,可用,和 高性能应用程序。 AppFabric融合了多个内存 计算机给一个统一的 缓存视图到应用程序。 应用程序可以存储任何 可序列化的CLR对象没有 担心物体的位置 存储。可扩展性可以通过实现 只需添加更多计算机 需求。缓存也允许 跨越存储的数据副本 集群,从而保护数据免受攻击 故障。它作为一项服务运行 通过网络访问。在 另外,Windows Server AppFabric 提供与之的无缝集成 启用ASP.NET会话的ASP.NET 要存储的对象 分布式缓存而不必 写入数据库。这增加了 兼具性能和可扩展性 ASP.NET应用程序。