Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Couchbase工作流_Couchbase - Fatal编程技术网

Couchbase工作流

Couchbase工作流,couchbase,Couchbase,我是一个使用Couchbase的新手,我想问一个关于Couchbase工作流的问题 我将许多项目放入Couchbase(而不是memcached)数据桶中。在达到到期时间之前,这些项目都将在数据桶中,这对吗?当到达时,Couchbase无法自动删除它们。只有当客户端请求该项目时,才会实际删除该项目。在这种情况下,Couchbase知道该项已过期,返回null并从内存中删除该项 这对我来说很重要,因为这会极大地影响我的解决方案如何理解缓存中缺少的项。若一切都如我所想的那个样工作,那个么只有当它还并

我是一个使用Couchbase的新手,我想问一个关于Couchbase工作流的问题

我将许多项目放入Couchbase(而不是memcached)数据桶中。在达到到期时间之前,这些项目都将在数据桶中,这对吗?当到达时,Couchbase无法自动删除它们。只有当客户端请求该项目时,才会实际删除该项目。在这种情况下,Couchbase知道该项已过期,返回null并从内存中删除该项

这对我来说很重要,因为这会极大地影响我的解决方案如何理解缓存中缺少的项。若一切都如我所想的那个样工作,那个么只有当它还并没有被放入缓存或者已经过期或者它在内存中并且服务器重新启动时,该项才会丢失。Couchbase总是会将一个项目放入缓存,即使没有剩余的可用RAM:它只会将其放入HDD,对吗


如果服务器重新启动,由于缺少RAM,硬盘上存储的项目会发生什么情况?它们也会被删除吗?

正如您所说,数据将保留在Couchbase中,直到达到过期时间: -如果过期时间设置为0:数据将一直保留,直到应用程序调用delete()操作 -如果过期时间设置为X:数据将保留在Couchbase中,直到达到X(秒),Couchbase server将自动使该值无效并删除该值

我不明白你为什么说“当到达时,Couchbase将无法自动删除它们”,Couchbase会自动删除过期项目:当你尝试访问过期项目或使用其自己的内部流程时,请查看

因此,只有当密钥不存在时(从未创建或自动从Couchbase中删除,或使用显式删除()),您才会说“未找到”(not_found)是正确的

Couchbase将首先将项目放入RAM,然后将其写入磁盘。Couchbase负责管理内存,并尽最大努力将最常用的项目保存在内存中。因此,您显然可以管理比RAM容量更多的数据,您只需在良好的平衡上工作,以获得良好的性能并避免I/O

当服务器重新启动时,Couchbase在磁盘上拥有所有数据,并且在启动期间将使用密钥和元数据填充内存。所以你不会失去任何东西

我邀请您阅读这些关于Couchbase体系结构的有趣文章/文档: - -

如果你需要更多信息,请告诉我


Tug

请注意Couchbase服务器不会延迟过期,也就是说,过期的项目会标记为已删除,而不是立即擦除。Couchbase服务器有一个维护过程,称为到期寻呼机,它将定期查看所有信息并删除过期项目。此维护过程将每60分钟运行一次,但可以将其配置为以不同的间隔运行。Couchbase服务器将在下次请求项目时立即删除标记为删除的项目;服务器将向请求进程响应该项不存在。