如何在Java / Scala中生成TimeUUID

时间:2014-07-25 09:10:56

标签: java scala cassandra timeuuid

有谁知道如何在Java / Scala中生成基于TimeBased的UUID?

以下是列族:

CREATE table col(ts timeuuid)

我正在使用Cassandra 1.2.4

感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

Cassandra有UUIDGen用于生成Timeuuids。这方面的来源是:

https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/utils/UUIDGen.java

答案 1 :(得分:8)

如果您使用的是Datastax驱动程序,则可以使用实用程序类UUIDs生成一个

import com.datastax.driver.core.utils.UUIDs;
....
UUID timeBasedUuid = UUIDs.timeBased();

答案 2 :(得分:4)

我对cassandra cli使用相同的方法,对于列名,我正在使用

System.currentTimeMillis().toString

scala>     val timestamp = System.currentTimeMillis().toString
timestamp: String = 1406279679674

<强>更新

主要取决于你的行键,如果rowKey是你的userId或其他东西,那么就没有机会以毫秒为单位提交重复记录,但如果你认为它可以重复,那么使用

val timestamp = com.eaio.uuid.UUIDGen.newTime().toString