假设我们正在构建一个电子商务网站,允许消费者通过输入关键字来搜索产品。假设最多有 200,000 种产品,并且有数百万消费者在使用该系统。假设产品表更新得相当频繁。由于产品的数量并不多,我们可能可以将整个产品表存储在内存中并对其进行搜索而不是访问数据库。我们希望创建存储相同数据但驻留在不同服务器中的分布式缓存(出于高可用性和性能原因),并且我们需要能够在这些缓存之间同步数据并在修改产品表时使缓存无效。
我们的应用程序是使用 ASP.NET MVC 和 NHibernate 构建的。我试图了解 NHibernate 的 2 级缓存是否对我的情况有所帮助。如果你们能对此有所了解,我将不胜感激。
我知道二级缓存将有助于缓存查询结果,因此如果两个不同的用户使用相同的关键字进行搜索,则二级缓存将提供来自缓存而不是数据库的结果。但这对我们没有多大帮助,因为产品表经常更新并且缓存的结果会过时。我的问题是我是否正确理解 L2 缓存,是否有任何东西可以帮助我按照我想要的方式管理缓存(多个缓存、相同的数据、缓存之间的同步和无效缓存)。任何想法都受到高度赞赏。