gpt4 book ai didi

java - JPA 和 Memcached 有何不同?

转载 作者:行者123 更新时间:2023-12-02 08:37:27 25 4
gpt4 key购买 nike

我正在尝试找出Memcached和JPA之间的区别,这是我从我掌握的信息中推断出的

  1. Memcached:在内存中缓存数据和对象,就像一个动态数据库一样可以快速访问数据。该层位于实际数据库之上(比如我的sql)。它有自己的列和行,可以在其中保存一些临时数据(热数据)。 RAM 中的小型数据库。

  2. JPA:管理关系数据(应该进入数据库的数据),其开发是为了让生活变得轻松,即我们不必进入 hibernate 状态等。 (用外行术语来说,我对 JPA 有点困惑:|)

所以,从我看来“:

  1. 两者都提供在内存中保存关系数据的功能。 - 错误
  2. 用于快速访问数据。- 错误
  3. 两者是相同的(我确信不是)- 错误

现在,有人告诉我他们在他们的系统中使用了 Memcahed 和 JPA(他们处理巨大的数据集)那么,这有什么意义呢?

添加问题:阅读完答案后,如果我正在制作一个处理巨大数据集的系统,我会选择memcached,但我仍然不明白,为什么我应该选择JPA if:1.我需要处理巨大的数据集,2.使系统具有可扩展性。

最佳答案

JPA 是一个 ORM(对象关系映射器),用于将对象模型映射到关系数据库模型。

Memcache 是一个内存缓存,只不过是一个键值对映射。

它们确实适用于不同的应用程序。 JPA 是使用 SQL 的替代方案。它具有缓存元素,但主要数据源是数据库,因此持久数据也是如此。 Memcache 数据存在于内存中,并不持久,对于 transient 数据也是如此。

让我添加另一个可能有争议的观点:JPA 无法扩展

JPA(和所有 ORM)很方便,可以通过将对象模型投影到关系数据库来加速开发,但它不如 native SQL 快。通常,您最终会找出生成高性能 SQL 的正确设置组合。正如乔尔所说,所有抽象都是有漏洞的。 JPA 也不异常(exception)。

让我强调一下,您可以使用 JPA 走得相当远,但在某些时候您将需要使用 SQL。

Memcache 解决了不同的问题,不应该与 JPA 进行比较。 Memcache 的扩展性非常好,但只要您可以对数据进行分区,在这种情况下,您可以根据需要拥有任意数量的服务器,瓶颈将成为网络带宽、内存和 CPU。

关于java - JPA 和 Memcached 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349837/

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