我了解到ASP.NET的默认会话提供程序对于分布式应用程序来说不是一个好的实践。因此我决定将ASP.NET的会话提供程序更改为couchbase。但是当我尝试选择一个数据桶时,我不确定该使用哪一个。我知道Couchbase是一个持久的非sql数据库,而memcached是一个缓存服务器。
使用couchbase bucket代替memcached bucket的优缺点是什么?反之亦然?
我正在使用CouchBase2.0和https://github.com/couchbaselabs/couchbase-aspnet库来将couchbase转换为会话提供者。
发布于 2012-10-08 23:23:42
无论是使用Couchbase存储桶还是Memcached存储桶,您都会体验到类似的优势。即使使用Couchbase存储桶,文档也存储在RAM中。文档也会先写入RAM,然后异步写入磁盘。因此,性能应该是相似的。与其他进程外会话状态解决方案(如SQL Server)相比,Couchbase的性能要好得多。
除了性能之外(正如@DB_Chick所指出的),您还可以在节点发生故障时重新创建会话,因为数据不会随服务器一起消亡(假设启用了复制)。
如果您将Couchbase存储桶与Couchbase Server2.0一起使用,您将有一个额外的优势,即能够针对您的会话数据编写map/reduce视图(如果您存储JSON数据结构,这是最简单的)。使用视图,您可以很容易地问“我有多少个活动会话?”
最后,您的会话数据仍将与Couchbase存储桶一起过期。当您在会话数据上设置过期时间时,Couchbase会在定期安排的后台清理作业期间或在过期后检索该项目时,将该项目标记为删除。
发布于 2012-10-05 17:00:47
Couchbase存储桶支持全系列Couchbase特定的功能,包括在线重新平衡(用于扩展集群)、持久性以及复制和故障转移。这是推荐的存储桶类型。
memcached存储桶被设计为只支持核心memcached协议作为内存缓存。因此,支持和功能仅限于独立的memcached实现中的相同功能。
更多信息请点击此处:http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-introduction-architecture-buckets.html
https://stackoverflow.com/questions/12734944
复制相似问题