gpt4 book ai didi

java - 在哪里缓存: Database cache or App server using SessionScoped managed beans?

转载 作者:行者123 更新时间:2023-12-02 08:20:50 24 4
gpt4 key购买 nike

我正在使用 Casssandra DB 和 Java 以及 JSF 2.0 构建 Web 应用程序。

Cassandra 有自己的缓存层,我还可以使用 JSF 中的 SessionsScoped 托管 bean 进行缓存。我想知道实现不同类型数据缓存的好方法是什么:要缓存的数据有时对于一种数据来说相当大,有时又很小(第二种)。

由于 Cassandra 行中的缓存数据列将以序列化格式和整个列结构存储数据,我想我最好将它们存储在应用程序服务器的 session 范围 bean 中,这样我还可以更好地控制缓存数据和缓存数据可能是最相关的,我想这两种情况下的硬件要求没有区别:- (1) 当我使用 sessionscoped beans 实现它时 (2) 如果我使用数据库缓存。

请列出这两种缓存实现可能带来的好处的任何差异。

最佳答案

不要(ab)使用 session 范围作为大型数据集的缓存。您基本上是为每个访问者复制缓存。您应该有一个缓存。数据库缓存完全没问题。

至于数据的大小,您应该有效地拥有一个请求或 View 作用域 bean,其中包含最终用户在特定请求中需要了解的数据。例如。当您通过分页显示包含 1000 个对象的数据集(每页 10 个对象)时,请求作用域 bean 应恰好包含这 10 个对象,并且剩余部分应保留在 DB/DB 缓存中。代码也应该这样编写,使其准确检索这 10 个对象(因此不要检索 1000 个对象,然后从中过滤出所需的 10 个对象)。

关于java - 在哪里缓存: Database cache or App server using SessionScoped managed beans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com