I am using:
CassandraUtil::uuid1();
This is what I get:
ämªðÏBà=0£Ï‰
I though it would output a int.
What is going on? Is it normal?
Also should I use uuid1 or 2 or 3 or 4 or ...?
Thanks in advance!
uuid1()
現在の時刻とマシンの MAC アドレスに基づいて UUID を生成します。
uuid2()
もう使わないようです。
uuid3()
いくつかの名前空間 (URL、ドメイン名など) 内で選択した任意の名前の MD5 ハッシュを取得して UUID を生成します。
uuid4()
完全にランダムな UUID を生成します。
uuid5()
uuid3()
MD5 の代わりに SHA-1 ハッシュを使用する点を除いて、 と同じです。よりも正式に優先されuuid3()
ます。
phpcassa の UUID にはいくつかの部分があります。まず、生成方法です。これには、次の関数が役立ちます。
$my_uuid_string = phpcassa\UUID::uuid1();
$my_uuid_string = phpcassa\UUID::uuid4();
uuid1() は、タイムスタンプ コンポーネントを持ち、Cassandra では TimeUUIDType と呼ばれる v1 UUID を生成します。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::import()
、UUID オブジェクトが必要な場合はそれを使用する必要があります。
また、UUID::import()
きれいな文字列表現 (''d881bf7c-cf8f-11e0-85e5-00234d21610a' のようなもの) でも機能します。
最後に、 UUID クラスのドキュメントを忘れないでください 。
編集: 最新の phpcassa API に一致するように更新されたリンクとクラス名