ASP.NET 现在已经成为一种非常流行的 Web 应用技术,越来越多的人正在使用它开发高流量的应用程序。 为了处理更高的流量,这些 ASP.NET 应用程序部署在负载平衡的 Web 场中,您可以在其中随着流量负载的增加添加更多服务器。
但是出现了问题; 数据库和您的数据存储无法以相同的方式扩展以处理更高的流量负载。 所以,你得到的是一个瓶颈,你的 ASP.NET 应用程序会变慢,甚至会停止。 在这种情况下,数据缓存是解决这个数据库和数据存储瓶颈的好方法。 缓存允许您在附近存储应用程序数据并减少那些昂贵的数据库访问。
NCache 更多信息 NCache 配套文档 ASP.NET 缓存
什么是 ASP.NET 缓存?
ASP.NET Cache 允许您缓存应用程序数据,它是一个功能相当丰富的缓存,包括以下功能:
- 有效期: 自动绝对和滑动 期满.
- 缓存依赖: 管理缓存中的数据关系。
- SqlCacheDependency: 将缓存与数据库同步。
- 回调: 当缓存中的项目更新时收到通知。
这是一些显示 ASP.NET 缓存使用情况的示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="kwrd">using</span> System.Web.Caching; <span class="rem">// Create a key to lookup in the cache</span> <span class="rem">// The key for will be like “Employees:PK:1000”</span> <span class="kwrd">string</span> key = <span class="str">"Employee:EmployeeId:"</span> + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; <span class="kwrd">if</span> (employee == <span class="kwrd">null</span>) { <span class="rem"> // item not found in the cache. load from db</span> LoadEmployeeFromDb(employee); <span class="rem"> // Now, add it to the cache for future reference</span> Cache.Insert(key, employee, <span class="kwrd">null</span>, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, <span class="kwrd">null</span> ); } |
Web 场中的 ASP.NET 缓存限制
尽管缓存功能非常有用,但 ASP.NET 缓存有一些严重的限制。 其中一些如下:
- 不跨服务器或工作进程同步: NET 缓存不会跨多个服务器甚至多个工作进程同步。 因此,除非您的数据是只读的,否则您不能在网络农场甚至网络花园中使用它,而您需要缓存各种数据,包括经常更改的数据。
- 缓存大小限制: 您不能将 ASP.NET 缓存增长到超过一个 ASP.NET 工作进程可以包含的内容。 对于 32 位系统,这是 1GB,其中还包括应用程序代码。 即使对于 64 位系统,大小也无法扩展。
使用 ASP.NET Cache 兼容的分布式缓存
解决这些问题的方法 ASP.NET 缓存的限制 是使用分布式缓存,例如 NCache 对于网络农场。 NCache 提供与 ASP.NET 缓存相同的功能以及更多功能。 但是,作为分布式缓存, NCache 轻松跨多个服务器同步。 以下是您从中获得的一些好处 NCache:
- Scale 的事务加载非常好: 随着您的网络场从 2 台服务器增长到 200 台服务器,您可以继续向缓存集群添加更多缓存服务器。 NCache 永远不会成为处理更多流量的瓶颈。
- Scale 的数据存储很好: 随着您添加更多缓存服务器,您的缓存存储容量会因以下原因而增长 分区缓存拓扑.
- 复制数据以提高可靠性: 您可以确保即使由于数据复制到其他服务器而导致服务器宕机,也不会发生数据丢失。
- 动态自愈缓存集群: NCache 通过这个提供 100% 的正常运行时间。 而且,您可以在运行时添加或删除缓存服务器,而无需停止缓存或应用程序。
结论
好吧,如果您有一个在网络场上运行的 ASP.NET 应用程序,请查看 NCache 并了解它将如何帮助您提高应用程序的性能和可扩展性。
您可以随时给我们发送电子邮件至 sales@alachisoft.com
感谢它出色的写作。 无论如何,我们如何沟通?
我用过 NCache 在我的一个项目中,结果非常令人印象深刻。 强烈推荐 !!!