gpt4 book ai didi

php - 过滤存储在 Couchbase 中的数据

转载 作者:行者123 更新时间:2023-11-30 23:31:06 25 4
gpt4 key购买 nike

我目前有一个读取密集型移动应用程序(90% 读取,10% 写入),它通过 php 调用和单个 MySQL 数据库与单个 Web 服务器通信。数据库存储用户配置文件信息以及用户发送和接收的消息。我们每秒向数据库添加几条消息。

我正在进行水平扩展、负载平衡等过程。所以我们将在 Web 服务器集群前面有一个负载平衡器,然后我计划在 MySQL 集群之上放置一层 Couchbase 节点这样我们就可以快速访问用户个人资料信息和消息信息。我们将在 Couchbase 中缓存所有用户信息,但随后我只想在 Couchbase 中缓存最近 24 小时的消息,因为这是大多数读取事件发生的时间范围。

对于内存缓存中存储的消息数据,我希望能够根据消息字段中的各种数据(如国家、城市、时间等)过滤消息。我知道 Couchbase 使用 KV 方法,所以我无法查询像使用 MySQL 一样使用 where 子句。

有没有办法做到这一点? Couchbase Views 是答案吗?还是我完全错误地使用了 Couchbase?

最佳答案

Couchbase Server 2.0 及更高版本中的 View 正是您要查找的内容。如果放入 Couchbase 的数据是 JSON,您可以使用这些 View 对放入 Couchbase 集群的数据执行查询。

请注意,您可以使用一个将日期时间作为数组发出的 View (一种常见技术),甚至可以使用它来限制您的 View 时间段,这样您就可以潜在地将所有数据存储在 Couchbase 中而不需要把它也放在另一个系统中。但是,如果您有其他原因,您当然可以让这些项目在您将它们放入缓存后 24 小时后过期。然后,如果您使用的是支持它的客户端之一,您将能够在需要时获取并触摸缓存中的文档以延长到期时间。唯一的缺点是您需要想出一种在更新时使文档无效的方法。

一种方法是在 mysql 中使用触发器删除给定的键——另一种方法是从应用层使其无效。

p.s.: 完全披露:我是 Couchbase 的一员

关于php - 过滤存储在 Couchbase 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com