我在用:
CassandraUtil::uuid1();
这就是我得到的:
ämªðÏBà=0£Ï‰
我虽然它会输出一个int。
到底是怎么回事?正常吗?
我还应该使用 uuid1 或 2 或 3 或 4 还是 ...?
提前致谢!
phpcassa 中的 UUID 有几个部分。首先,如何生成一个。以下函数对此很有用:
$my_uuid_string = phpcassa\UUID::uuid1();
$my_uuid_string = phpcassa\UUID::uuid4();
uuid1() 生成一个 v1 UUID,它有一个时间戳组件,在 Cassandra 中称为 TimeUUIDType。uuid4() 生成一个完全随机的 UUID,在 Cassandra 中称为 LexicalUUIDType。(其他 uuidX() 函数通常没有那么有用。)这个函数返回的是 UUID 的字节数组表示形式——基本上是一个 16 字节的字符串。这就是你的"ämªðÏBà=0£Ï‰"
字符串。当您尝试将 UUID 插入 Cassandra 时,这就是您想要使用的。
可以从这个字节数组中创建一个具有有用方法和属性的 UUID 对象:
$my_uuid = phpcassa\UUID::import($my_uuid_string);
使用 $my_uuid,您可以通过获取$my_uuid->string
. 您可以通过执行$my_uuid->bytes
. 您从 Cassandra 返回的任何 uuid 数据都将采用字节数组格式,因此UUID::import()
如果您需要 UUID 对象,则需要在其上使用。
此外,UUID::import()
也适用于漂亮的字符串表示(看起来像''d881bf7c-cf8f-11e0-85e5-00234d21610a')。
最后,不要忘记 UUID 类的文档。
编辑:更新链接和类名以匹配最新的 phpcassa API
uuid1()
根据当前时间和机器的 MAC 地址生成 UUID。
uuid2()
似乎不再使用了。
uuid3()
通过获取您在某个命名空间(例如 URL、域名等)中选择的任意名称的 MD5 哈希来生成 UUID。
uuid4()
生成一个完全随机的 UUID。
uuid5()
与 相同uuid3()
,除了使用 SHA-1 哈希而不是 MD5。官方首选超过uuid3()
.