c# - 在 ASP.NET MVC 应用程序中缓存 "dictionary-like"DB 实体

标签 c# asp.net-mvc azure caching azure-sql-database

我在 Azure 中托管了 asp.net mvc5 项目,该项目使用 SQL Azure 进行数据持久性。我的数据库中的一些表就像字典,它们被很多表引用,并且很少更改。此类表的一个示例可以是客户端应用程序类型:Windows、Windows Phone、Android 等。

但是还有更多的数据库插入操作将数据插入到对这些 dict 表具有外部引用的表中。 我想要优化,并且不要在每次插入时对字典表进行 SQL 查询来获取某个实体的 id(这不是过早的优化,Azure 可能会根据查询次数改变一些钱)。

实现这一目标的好方法是什么?目前,我有类似 DAO 的实体管理器,其静态字段会在构造对象或显式调用 Refresh() 时填充(当通过我的 asp.net mvc 应用程序更新字典数据时)。每个管理器都缓存自己表中的实体。 这就像穷人的缓存。我想知道有更好的方法吗?是否有任何模式/库/技术来缓存“类似字典”的数据?

最佳答案

既然您在 Azure 中托管应用程序并使用 SQL Azure,那么为什么不使用 Microsoft Azure Redis 缓存。 Redis 是一种高级键值缓存和存储。

https://azure.microsoft.com/en-us/services/cache/

使用方法: https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/

关于c# - 在 ASP.NET MVC 应用程序中缓存 "dictionary-like"DB 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30626386/

相关文章:

c# - 使用 html Agility Pack 选择属性值

c# - Fluent Nhibernate - 将两个实体映射到同一个表

c# - FileUpload 在多 View 和更新面板中不起作用

c# - 我转换为 Short 的二进制数据有效吗?

azure - 如何区分免费 Azure CosmosDB 帐户和付费帐户之间的区别?

azure - 如何使用 R 中的 API 使用 Azure DocumentDB 中的数据

asp.net - Web 配置转换不起作用

asp.net-mvc - 需要为基于 Razor 的 View 编写单元测试的指针

asp.net-mvc - MVC 4 - 我想根据条件使表可见或隐藏

azure - Kubernetes 持久卷不显示真实容量