Azure 角色中缓存开发
重要
Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪种 Azure 缓存产品/服务适合我?
Microsoft Azure缓存提供了一组 API,用于从缓存中添加、更新和删除项。 在 Microsoft.ApplicationServer.Caching 命名空间中使用类和方法是与 Azure 缓存交互的直接方法。 而使用其中一个 ASP.NET 提供程序是使用 Azure 缓存的间接方式。 本节中的主题介绍直接以编程方式使用缓存。 有关用于缓存的 ASP.NET 提供程序的详细信息,请参阅 ASP.NET Azure In-Role 缓存的 4 个缓存提供程序。
编程模型
缓存编程模型专为缓存端编程模式而设计。 如果你的数据不存在于缓存、应用程序和分布式缓存中,则必须从原始数据源将数据重新加载到缓存中。
缓存端编程注意事项
请将应用程序代码设计为可独立于缓存而正常工作,以使应用程序在缓存数据不可用时也能继续正常工作。 由于缓存中的数据不以持久形式暂留,因此在这种情况下数据不可用的可能性是存在的。 例如,如果包含数据的服务器重新启动,则内存中的缓存项目均将丢失。 请求某个不存在于缓存中的项目称为缓存未命中。
使用In-Role缓存高可用性功能时,缓存项的备份副本有助于防范正在运行的缓存群集上的计算机和进程故障。 但如果所有计算机都重新启动,则即使使用高可用性功能也无法实现持久性。 需要暂留的项目必须使用数据库或其他持久存储技术。 缓存则提供了一种用于提高性能和可扩展性的机制。
由于其他许多原因,代码可能会遇到缓存未命中。 例如,缓存项可能已过期或已根据正常过期和逐出策略逐出。 无论何种原因,应用程序代码必须能够访问原始数据来源,以在缓存中重新填充项目。