【发布时间】:2014-03-25 08:04:11
【问题描述】:
我有一个使用 couchbase 作为数据库的 nodejs 项目。 只是想知道我是否将临时数据存储在
1.redis
或在
2.couchbase 直接。
据我所知,couchbase 存在套接字延迟,我认为将临时数据存储在 redis 中,而将永久数据存储在 couchbase 中更好。 有没有人有这方面的经验?
欢迎评论
【问题讨论】:
我有一个使用 couchbase 作为数据库的 nodejs 项目。 只是想知道我是否将临时数据存储在
1.redis
或在
2.couchbase 直接。
据我所知,couchbase 存在套接字延迟,我认为将临时数据存储在 redis 中,而将永久数据存储在 couchbase 中更好。 有没有人有这方面的经验?
欢迎评论
【问题讨论】:
我是 Redis 的忠实粉丝,但在这种情况下,我只会使用 Couchbase。
Couchbase 相当高效,当您的数据工作集适合内存时,其性能可与 memcached 相媲美。大多数时候,在 Couchbase 之上的额外缓存层是没有用的。
也就是说,如果您真的需要一个缓存层,或者只是一些临时数据的存储,您可以简单地创建一个托管在 Couchbase 集群中的 memcached 存储桶。因此,您将有一个“最终持久”的存储桶用于存储持久数据,并有一个用于存储临时数据的 memcached 存储桶。
此处描述了存储桶类型:
http://docs.couchbase.com/couchbase-manual-2.5/cb-admin/#data-storage
在这种情况下,将 Redis 添加为额外的存储层并没有什么意义。
【讨论】:
Couchbase 内置了一个托管缓存,即使对于 Couchbase 存储桶也是如此。所以它已经有了一个缓存层,在上面再添加一个听起来是多余的。
我不确定 Couchbase 中的套接字延迟是什么意思。您能否对此进行更多解释?这不是我以前见过的东西,而且对我来说很可疑。我会尝试解决这个问题并弄清楚这是什么,然后再将 redis 添加到混合中并有另一个层来管理和编码。在不了解套接字延迟的情况下,很难提出更多建议。
【讨论】:
这是一个古老的问题,但我也会接受它,如果没有别的,那么对于通过谷歌遇到它的人来说,就像我所做的那样。
我同意他接受的答案,因为 CouchBase 在 RAM 中有最近使用的文档。在这方面,它的作用与 Redis 相同。 CouchBase 的优势当然是通过添加更多节点,数据可以可靠地溢出 RAM 限制和服务器磁盘限制。
但是,我有一个项目正在考虑在 CouchBase 旁边使用 Redis。它基本上被认为是一个缓存服务器,但用于“计算”项目。比如html-sn-ps之类的东西。 CouchBase 是一个很棒的文档存储,但是制作列表和其他结构并不容易,尤其是在没有大量视图的情况下。所以我正在考虑使用 Redis 作为临时数据存储来进行所需的临时数据操作,并将 CouchBase 作为主要数据存储。
【讨论】: