2012-05-15 46 views
1

我目前有一个阅读繁重的移动应用程序(90%读取,10%写入),通过php调用和单个MySQL数据库与单个Web服务器进行通信。数据库存储用户配置文件信息和用户发送和接收的消息。我们每秒钟会向db添加几条消息。过滤存储在Couchbase中的数据

我正在进行水平伸缩,负载平衡等过程。因此,我们将在Web服务器集群前有一个负载均衡器,然后我计划在MySQL的顶部放置一层Couchbase节点所以我们可以快速访问用户配置文件信息和消息信息。我们将在Couchbase中memcache所有用户信息,但是我只想在Couchbase中最新的24小时消息memcache,因为这是大部分阅读活动发生的时间段。

对于存储在memcache中的消息数据,我希望能够根据消息字段中的各种数据筛选消息,如国家,城市,时间等。我知道Couchbase使用KV方法,因此我无法使用where子句查询,就像我会用MySQL一样。

有没有办法做到这一点? Couchbase查看答案?还是我完全用Couchbase咆哮错误的树?

回答

0

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

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

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

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

相关问题