多层架构中的缓存服务器

标签 caching architecture cache-control 3-tier

我正在根据三层架构规划企业应用程序的拓扑,我的解决方案包含缓存服务器(Redis)以管理缓存数据。

托管缓存服务器的最佳层是什么?业务层还是数据层,为什么?

最佳答案

越接近演示,缓存就越有效。缓存越粗,您需要执行的重新计算就越少。不幸的是,越接近呈现,缓存失效就越困难,因为确定缓存“无效”的条件需要越来越多的系统状态和业务规则的基础知识。

数据库层以下的缓存(磁盘 block 或数据库 block 级缓存)只需要知道 block 本身何时发生更改。

数据库层的缓存需要的知识较少,因为您可以缓存每个数据库实体。每次该实体发生更改或相关实体在身份级别发生更改时,都会使缓存失效。

业务层的缓存需要了解构成这些业务对象的数据元素以及可能导致这些业务对象无效的原因。

当您一直移动到表示层时,您必须了解可能影响任何给定 UI 元素的所有业务和数据更改,以便您可以使其失效。

关于多层架构中的缓存服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49920443/

相关文章:

apache - 如何理解 "semantically transparent"部分RFC2616的 "Cache-Control machanism"?

symfony - 父请求和 ESI 子请求之间有任何通信( Varnish 、 session 需求)吗?

c# - 具有 SQL Server 数据库调用的多线程 C# 应用程序

java - 如何设置Pragma : no-cache HTTP header in Jersey?

ruby-on-rails - 什么是 DCI,它如何适应 Rails?

architecture - 在线浏览器游戏架构

amazon-web-services - 如何在 amazon cloudfront 中设置 Cache-Control Header?

java - 是否可以仅通过在java客户端中提供缓存配置来启动ignite缓存?

python - 在 Python 中使用 MySQLdb 的长期陈旧结果

caching - redis最大数据库数