采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问老师,应用系统都是直接操作数据库吗?我看很多源码都是有一个缓存层的,就是使用httpruntime的cache对象对数据库的数据进行缓存,那么我们的数据模型操作时是否需要加入一个缓存层的处理,还有如果要引入redis等?缓存又应该怎么做? 是不是每张表都要建立对应的缓存类呢?现在缓存中找,没有再去数据库找,这种操作一般时怎么实现呢? 谢谢老师。
应用系统是否直接操作数据库完全看你如何架构系统。数据模型的设计与缓存实际上是没有关系,更准确的说,数据模型应该是脱离持久化层而存在的,他包含的应该是业务逻辑而不是数据访问逻辑。而数据访问我们更多使用的是类似DAO这样的数据访问层来处理。所以,我们的数据模型操作并不需要加入缓存层的处理。
引入redis最重要的目的是为了解决分布式缓存(如果你的后端只有一个节点,使用memchahe完全足够了),所以我们应该从分布式的角度来考虑架构。这里有一篇微软官方的文档,希望能对你有帮助,https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1
现在的Web应用读取数据肯定都会用到缓存,我就是想知道,既然数据模型那里只是处理业务逻辑(准确地说,这个应该是领域实体模型了吧?),那么在数据访问层,是如何加上缓存处理的呢?缓存键如何管理? 增删改查,修改时需要应该是在数据库和缓存中都是要同时进行的,如何保证数据的一致性,老师可否大致说说这个流程如何进行,特别是对于数据表的数据比较大,比如几十万行数据,那么这些数据应该如何缓存?是不是每次都去数据库查询呢?如果要缓存,是不是要用到redis这样的内存数据库?
我觉得你的问题已经与这个课程关系不大了,去google搜索最佳实践吧
登录后可查看更多问答,登录/注册
. Net Core实战+RESTful思想纵深课程,开发优雅RESTful风格API。
398 2
467 2
573 1
1.0k 2
1.3k 3