我正在使用:
CassandraUtil::uuid1();
这就是我得到的:
ämªðÏBà=0£Ï‰
我虽然会输出一个int。
发生了什么事?这是正常的吗?
我也应该使用uuid1或2或3或4或......?
提前致谢!
答案 0 :(得分: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,您可以得到一个漂亮的字符串表示形式,例如' d881bf7c-cf8f-11e0-85e5-00234d21610a'获得$my_uuid->string
。您可以通过$my_uuid->bytes
取回字节表示。您从Cassandra获取的任何uuid数据都将采用字节数组格式,因此如果您需要UUID对象,则需要在其上使用UUID::import()
。
此外,UUID::import()
也适用于漂亮的字符串表示(看起来像'' d881bf7c-cf8f-11e0-85e5-00234d21610a')。
最后,请不要忘记UUID class的文档。
编辑:更新的链接和类名以匹配最新的phpcassa API
答案 1 :(得分:4)
uuid1()
根据当前时间和机器的MAC地址生成UUID。
uuid2()
似乎不再使用了。
uuid3()
通过获取您在某个命名空间中选择的任意名称的MD5哈希值(例如,URL,域名等)来生成UUID。
uuid4()
生成一个完全随机的UUID。
uuid5()
与uuid3()
相同。官方优先于uuid3()
。