我试图弄清楚Memcached和JPA之间的区别,这是我从我的信息中推断出来的
Memcached:在内存中缓存数据和对象,就像在飞行数据库中快速访问数据一样.这个层就在实际的db之上(比如我的sql).它有自己的列和行,在哪里可以保存一些临时数据(热数据).RAM中的小型数据库.
JPA:管理关系数据(应该在数据库中的数据),开发以使生活变得简单,即我们不必进入休眠和东西.(在外行人的任期内,我对JPA感到困惑:|)
所以,从我看到的地方":
两者都提供了在内存中保存关系数据的功能.- 错了
用于快速进行数据访问.- 错误
两者都是一样的(我肯定不是) - 错了
现在,有人告诉我他们在他们的系统中使用了Memcahed和JPA(他们处理大量数据集)所以,这有什么意义呢?
添加问题:在阅读完答案之后,如果我正在建立一个处理大量数据集的系统,我将使用memcached,但我仍然不明白,为什么我要去JPA如果:1.我需要处理巨大的问题数据集,2.使系统可扩展.
JPA是一个ORM(对象关系映射器),用于将对象模型映射到关系数据库模型.
Memcache是一个内存缓存,它只是一个键值对映射.
他们真的适合不同的应用程序.JPA是使用SQL的替代方法.它具有缓存元素,但主数据源是数据库,因此用于预先存储的数据.Memcache数据存在于内存中并且不是持久性的,因此对于更多的瞬态数据.
让我补充一点可能有争议的观点:JPA不会扩展.
JPA(以及所有ORM)是一种便利,可以通过将对象模型投影到关系数据库来加速开发,但它不如原生SQL快.通常,您最终会找到生成高性能SQL的正确设置组合.正如乔尔所说,所有的抽象都是漏洞.JPA也不例外.
让我强调你可以在JPA上走得相当远,但在某些时候你需要转向SQL.
Memcache解决了一个不同的问题,不应该与JPA进行比较.Memcache可以非常好地扩展,只要您可以对数据进行分区,在这种情况下,您可以拥有所需数量的服务器,瓶颈就会变成网络带宽,内存和CPU.