我正在尝试在我的应用程序中实现缓存。我们使用Oracle数据库,asp.net web api向ui提供数据。 Api调用需要更多时间,因此我们正在考虑实现缓存。我们的代码部署在带有负载均衡器的2台服务器上。如何实现缓存。我计划实现的是,任何服务器上都应该有一个服务API,这个api会将所有数据存储在内存中。 Ui将调用我们现有的API,命中可以转到任何节点,这个api然后将从新的api(缓存)获取数据并将其提供给ui。这种架构对于被破坏的缓存是否正确。任何人都可以分享他们的实施经验或指导吗?
您可能想要检查NCache。作为分布式缓存解决方案,它为在多个客户端之间共享缓存数据提供了一流的支持,因为疼痛过程在任何一个应用程序地址空间的地址之外自主运行。
对于您的情况,负载平衡Web场中的每个Web服务器都将是NCache的客户端,并且可以直接访问缓存服务器。所有作为中央缓存解决方案客户端的Web服务器都将通过简单易用的NCache API看到相同的缓存数据。通过插入,更新或删除缓存操作进行的任何修改都将立即显示给所有Web服务器。
驱动NCache的智能允许在分配缓存实例的多个缓存服务器节点之间的缓存数据的存储和分发的所有任务的无缝幕后处理。
此外,所有缓存操作都完全独立于用于数据库内容检索的框架,并且可以同样适用于NHibernate,EF,EF Core,当然还有ADO.NET。
您可以使用以下链接找到有关如何将NCache集成到Web场环境等的更多信息:
http://www.alachisoft.com/resources/docs/ncache/admin-guide/ncache-architecture.html