我计划使用一些缓存来避免频繁的读取操作(相同的数据)。应用程序使用Node.js构建。我使用的是Apache Cassandra数据库。
我应该使用Cassandra行缓存还是使用Redis缓存?
我已经使用Redis服务器缓存PHP会话,GEO空间搜索和缓存PHP应用程序的其他数据。
哪种方式的性能更好?Cassandra Row Cache还是Redis Cache?
发布于 2017-09-06 21:21:54
既然你已经在使用Redis服务器了,我还是倾向于redis吧。
redis是一个纯粹的内存解决方案,它与oracle coherence等竞争。您需要进行大量转换,因为需要将列族映射到Redis的键值形式。
Cassandra缓存只是数据库提供的一个附加组件。使用cassandra缓存构建缓存会更快,因为不需要进行额外的转换,但redis服务器的性能很可能会更好
发布于 2017-09-07 22:18:43
我在ScyllaDB工作,这是一个用C++编写的与Cassandra兼容的数据库。
为什么不在数据库之前放置一个缓存,原因有很多--在我看来,最重要的是应用程序/部署变得更加复杂。因此,如果数据库可以提供缓存,则应该选择。
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
https://stackoverflow.com/questions/46075979
复制相似问题