我们正在开发一个分布式 Web 应用程序(3 个带有负载均衡器的 tomcat)。
目前我们正在寻找缓存解决方案。当然,这个解决方案应该是集群安全的。 我们使用的是spring、jpa(mysql)
我们考虑了以下解决方案:
创建一个运行简单缓存的缓存服务器,每个 tomcat 的所有数据库操作都将委托(delegate)给它。 (Web 应用程序中的 dao 层将与该服务器通信,而不是访问数据库本身)。这很有吸引力,因为缓存服务器配置上的缓存可以是最小的。
我们现在想知道的是:
如果将复杂查询传递到缓存服务器(即使用多个联接和 where 子句进行选择),标准缓存形式(映射)究竟如何处理这个问题?这是否意味着我们必须单独为每个复杂查询实现查找并将其调整为 map 搜索而不是数据库?
P.S - 该架构的基础可能存在缺陷,因此提出了这样一个奇怪的问题,如果是这种情况,请提出替代方案。
最好,
最佳答案
mySql 已经带有查询缓存,请参阅 http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html
关于java - 分布式 Web 应用程序中的缓存 - 复杂查询用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552997/