请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据模型中是否需要引入应用程序缓存?

请问老师,应用系统都是直接操作数据库吗?我看很多源码都是有一个缓存层的,就是使用httpruntime的cache对象对数据库的数据进行缓存,那么我们的数据模型操作时是否需要加入一个缓存层的处理,还有如果要引入redis等?缓存又应该怎么做? 是不是每张表都要建立对应的缓存类呢?现在缓存中找,没有再去数据库找,这种操作一般时怎么实现呢? 谢谢老师。

正在回答 回答被采纳积分+3

1回答

阿莱克斯刘 2020-11-08 16:49:40

应用系统是否直接操作数据库完全看你如何架构系统。数据模型的设计与缓存实际上是没有关系,更准确的说,数据模型应该是脱离持久化层而存在的,他包含的应该是业务逻辑而不是数据访问逻辑。而数据访问我们更多使用的是类似DAO这样的数据访问层来处理。所以,我们的数据模型操作并不需要加入缓存层的处理。

引入redis最重要的目的是为了解决分布式缓存(如果你的后端只有一个节点,使用memchahe完全足够了),所以我们应该从分布式的角度来考虑架构。这里有一篇微软官方的文档,希望能对你有帮助,https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1


0 回复 有任何疑惑可以回复我~
  • 提问者 慕设计9348276 #1
    现在的Web应用读取数据肯定都会用到缓存,我就是想知道,既然数据模型那里只是处理业务逻辑(准确地说,这个应该是领域实体模型了吧?),那么在数据访问层,是如何加上缓存处理的呢?缓存键如何管理? 增删改查,修改时需要应该是在数据库和缓存中都是要同时进行的,如何保证数据的一致性,老师可否大致说说这个流程如何进行,特别是对于数据表的数据比较大,比如几十万行数据,那么这些数据应该如何缓存?是不是每次都去数据库查询呢?如果要缓存,是不是要用到redis这样的内存数据库?
    回复 有任何疑惑可以回复我~ 2020-11-09 18:43:18
  • ming114 回复 提问者 慕设计9348276 #2
    我觉得你的问题已经与这个课程关系不大了,去google搜索最佳实践吧
    回复 有任何疑惑可以回复我~ 2021-05-08 22:28:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信