插入Cassandra的订单和分页

时间:2014-08-20 08:52:56

标签: cassandra cql

首先让我说我对Cassandra不太熟悉,而且我有可能尝试将它用于不正确的任务。

我有一段代码存储了我想访问的网址

List<URL> urls = new ArrayList();

问题是我存储了很多的URL和我的应用程序内存。事实上,不想将此列表保留在内存中,因为它将增长到千兆字节。 Cassandra似乎是最好的解决方案,因为它可以存储大于可用内存的数据集。

我创建了一个简单的表

CREATE TABLE links (
    url text,
    PRIMARY KEY(url));

我试图获得下一个这样的网址

SELECT * 来自网址 令牌(url)&lt; ? 限制1

?是最近访问过的网址。

问题在于,如果我在运行上述查询之前插入新网址,则可能会插入这些网址&#34;在&#34;下面#34;最近访问过的网站。我的应用程序将错过他们,永远不会去那些页面。

我的问题是如何通过不断增长的表格(虽然它正在增长)并且不会错过任何东西?

2 个答案:

答案 0 :(得分:1)

在您的情况下,

url是一个分区键,并定义将存储行(分区)的节点。它没有定义行(分区)的顺序。

http://cassandra.apache.org/doc/cql3/CQL.html#createTablepartitionClustering

答案 1 :(得分:0)

Cassandra并不完全适合您的使用案例。您可能想要查看日记系统。可以看一下Java Chronicle,看看它是否更合适。