我打算使用一些缓存来避免频繁的读操作(相同的数据)。应用程序使用Node.js构建。我正在使用Apache Cassandra数据库。
我应该使用Cassandra Row Cache还是使用Redis缓存?
我已经在使用Redis服务器来缓存PHP会话,GEO空间搜索以及为PHP应用程序缓存其他数据。
哪种性能会更好? Cassandra行缓存或Redis缓存?
答案 0 :(得分:0)
由于您已经在使用redis服务器,我会倾向于Redis Redis是一种纯粹的内存解决方案,可与oracle一致性等竞争。 您需要进行大量转换,因为列族需要映射到redis的键值形式。
Cassandra缓存只是数据库提供的附加组件。使用cassandra缓存构建缓存会更快,因为没有其他转换要做,但redis服务器的性能很可能会更好
答案 1 :(得分:0)
我为ScyllaDB工作,这是一个用C ++编写的Cassandra兼容数据库。
为什么不在数据库之前放置缓存有很多原因 - 在我看来,最重要的是应用程序/部署变得复杂得多。因此,如果DB可以提供应该选择的缓存。
ScyllaDB默认缓存的分区/行数据缓存。如果Cassandra的行缓存不能很好地为您服务 - 您可以尝试Scylla。
去年,我就Outbrain从Cassandra + Memcache转移到ScyllaDB的经历谈到了这样一个用例Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IOPS of Cassandra
您可能还会找到我们的首席执行官兼联合创始人Dor Laor的以下帖子,了解为什么应该避免在数据库之前放置缓存7 Reasons Why Not to Put a Cache in Front of Your Database