首页 文章

过滤存储在Couchbase中的数据

提问于
浏览
1

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

我正在进行横向扩展,负载 balancer 等 . 所以我们在Web服务器集群前面有一个负载均衡器,然后我计划在MySQL集群之上放置一层Couchbase节点,这样我们就可以了可以快速访问用户 Profiles 信息和消息信息 . 我们将在Couchbase中记忆所有用户信息,但之后我想在Couchbase中记忆最新的24小时消息,因为这是大多数读取活动将要发生的时间范围 .

对于存储在memcache中的消息数据,我希望能够根据消息的字段(如国家,城市,时间等)中找到的各种数据来过滤消息 . 我知道Couchbase使用KV方法,因此我无法使用where子句进行查询就像我对MySQL一样 .

有没有办法做到这一点? Couchbase是否能够找到答案?或者我是否完全用Couchbase咆哮错误的树?

1 回答

  • 0

    Couchbase Server 2.0及更高版本中的视图是您正在寻找的 . 如果放入Couchbase的数据是JSON,则可以使用这些视图对放入Couchbase群集的数据执行查询 .

    请注意,您可以使用将日期时间作为数组发布的视图(一种常见技术),甚至可以使用它来限制您的查看时间段,这样您就可以将所有数据存储在Couchbase中而无需将其存储在另一个系统中 . 如果您还有其他原因,那么您可以将这些项目放入缓存后24小时过期 . 然后,如果您正在使用其中一个支持它的客户端,您将能够在缓存中获取并触摸文档,以延长到期时间(如果需要) . 唯一的缺点是你需要提出一种在更新时使文件无效的方法 .

    一种方法是使用mysql中的触发器删除给定的键 - 另一种方法是从应用程序层使其无效 .

    p.s . :完全披露:我是Couchbase人之一

相关问题