我想为我们的应用程序实现一个缓存系统,我们已经开始与Memcached集成。最近我开始听说Hypertable,并看到了一些很好的基准测试......
然而,我找不到两者之间的良好比较。
只是为了让事情顺利:我知道Hypertable被认为更接近数据库而不是高速缓存。另一方面,它并不完全是一个RDBMS - 事实上,它完全不一个RDBMS。它有自己的好处,但问题是它们是否值得性能成本(如果有的话)?
答案 0 :(得分:1)
Hypertable是Google's BigTable中概念的实现。即column-oriented DB,具有高度非规范化的属性,这意味着它不需要连接。
Memcached是一个内存缓存层,其作用类似distributed hashtable,可让您的应用无需点击实际的数据库。
两者都非常适合分发并与MapReduce样式拓扑结合良好,但它们用于不同的目的。 Memcached / DHT将用于加速访问内存中的数据,而HyperTable / BigTable是磁盘上永久数据存储的实际机制。
答案 1 :(得分:1)
Memcached用于加快速度,例如:通过将所有内容存储在内存(RAM)中,SQL查询的结果,无需转到数据库。
Hypertable(HBase,Cassandra,MongoDB等)和其他是永久存储NoSQL DB(从硬盘存储和检索的数据)。它们无法提供从RAM读取/写入RAM的性能(例如memcached)。所以这些都没有相互比较。
更好的用例是使用NoSQL DB进行永久存储,并使用memcached作为Web应用程序和(NoSQL或任何)数据库之间的前端快速访问缓存。