首先让我说我对Cassandra不太熟悉,而且我有可能尝试将它用于不正确的任务。
我有一段代码存储了我想访问的网址
List<URL> urls = new ArrayList();
问题是我存储了很多的URL和我的应用程序内存。事实上,不想将此列表保留在内存中,因为它将增长到千兆字节。 Cassandra似乎是最好的解决方案,因为它可以存储大于可用内存的数据集。
我创建了一个简单的表
CREATE TABLE links (
url text,
PRIMARY KEY(url));
我试图获得下一个这样的网址
SELECT * 来自网址 令牌(url)&lt; ? 限制1
?
是最近访问过的网址。
问题在于,如果我在运行上述查询之前插入新网址,则可能会插入这些网址&#34;在&#34;下面#34;最近访问过的网站。我的应用程序将错过他们,永远不会去那些页面。
我的问题是如何通过不断增长的表格(虽然它正在增长)并且不会错过任何东西?
答案 0 :(得分:1)
url
是一个分区键,并定义将存储行(分区)的节点。它没有定义行(分区)的顺序。
http://cassandra.apache.org/doc/cql3/CQL.html#createTablepartitionClustering
答案 1 :(得分:0)
Cassandra并不完全适合您的使用案例。您可能想要查看日记系统。可以看一下Java Chronicle,看看它是否更合适。