【发布时间】:2015-12-22 16:31:33
【问题描述】:
通过 Web 应用程序中的异步调用对 Cassandra 中的表进行分页的有效方法是什么?
我知道您可以拉出比页面大小多一行并将该值发送到客户端,以便他们可以将其用作下一次调用的起点,但这将 Cassandra 和客户端紧密结合在一起。
对于这种情况有更好的做法吗?
【问题讨论】:
标签: pagination cassandra
通过 Web 应用程序中的异步调用对 Cassandra 中的表进行分页的有效方法是什么?
我知道您可以拉出比页面大小多一行并将该值发送到客户端,以便他们可以将其用作下一次调用的起点,但这将 Cassandra 和客户端紧密结合在一起。
对于这种情况有更好的做法吗?
【问题讨论】:
标签: pagination cassandra
TL;DR;就在这里。使用页面状态。
看看这里:Results pagination in Cassandra (CQL) 和这里:http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0
值得解释的是,当使用 Cassandra 2.0+ 自动分页时,作为响应,您将获得页面结果 + 当前页面状态 + 下一页状态。这些页面状态是字节数组。要获得下一页,您只需像往常一样调用结果,但您包括页面状态。
注意:页面状态不受修改保护。您可能不想将其公开给客户端,因为修改页面状态可能会返回特定用户无法访问的数据。
【讨论】: