Pagination Cassandra中的异步分页

Pagination Cassandra中的异步分页,pagination,cassandra,Pagination,Cassandra,在Cassandra中,通过web应用程序中的异步调用对表进行分页的有效方法是什么 我知道,您可以比页面大小多拉一行,然后将该值发送到客户端,这样他们就可以将其作为下一次调用的起点,但这将Cassandra和客户端紧密结合在一起 对于这种情况有更好的做法吗 TL;博士有。使用页面状态 看看这里:这里: 值得解释的是,当使用Cassandra 2.0+自动分页时,您将得到页面结果+当前页面状态+下一页面状态。这些页面状态是字节数组。要获得下一页,您只需像往常一样调用结果,但需要包含页面状态 注意:

在Cassandra中,通过web应用程序中的异步调用对表进行分页的有效方法是什么

我知道,您可以比页面大小多拉一行,然后将该值发送到客户端,这样他们就可以将其作为下一次调用的起点,但这将Cassandra和客户端紧密结合在一起


对于这种情况有更好的做法吗

TL;博士有。使用页面状态

看看这里:这里:

值得解释的是,当使用Cassandra 2.0+自动分页时,您将得到页面结果+当前页面状态+下一页面状态。这些页面状态是字节数组。要获得下一页,您只需像往常一样调用结果,但需要包含页面状态


注意:页面状态不受修改保护。您可能不想在客户端公开它,因为修改页面状态可能会返回特定用户不应访问的数据。

谢谢,但实际上没有办法将下一个页面状态发送到客户端,对吗,有一些解决方法——将其存储在服务器端的用户缓存中,然后只向客户端发送id,或者加密并发送id。然而,我不知道任何简单的方法。顺便说一句,我肯定我在某个地方读到过,页面状态不受修改的保护。但是现在,here:写为“注意,分页状态只能用完全相同的语句(相同的查询字符串,相同的参数)重用。如果您试图修改其内容或用不同的语句重用它,驱动程序将引发错误。”。最好单独问一个关于页面状态的问题—它是如何工作的(这些字节是什么)以及向外部用户公开是否安全。