可以说我有一个用户列家族具有独特的键名+预设为特定的客户端UUID cassandra排序?
<?php
uniqid ("serverA");//generate something like; serverA4b3403665fea6
?>
我可以通过二级索引选择它们等,如:(从phpcassa生日例子)
$column_family = new ColumnFamily($conn, 'Indexed1');
$index_exp = CassandraUtil::create_index_expression('birthdate', 1984);
$index_clause = CassandraUtil::create_index_clause(array($index_exp));
$rows = $column_family->get_indexed_slices($index_clause);
// returns an Iterator over:
// array('winston smith' => array('birthdate' => 1984))
foreach($rows as $key => $columns) {
// Do stuff with $key and $columns
Print_r($columns)
}
但是我只想查询每个页面和多个页面布局的30个最新添加用户(创建密钥),每个页面显示较老的密钥
我目前发现的唯一选择是使用来自phpcassa的uuid
uuid1()
根据机器的当前时间和MAC地址生成UUID。
- 优点:如果您希望能够按照创建时间对UUID进行排序,这很有用。
- 缺点:潜在的隐私泄漏,因为它揭示了它是在哪个计算机上生成的,以及在什么时间生成的。
- 可能的冲突:如果在同一台机器上同时生成两个UUID(100ns内)。 (或其他一些不太可能的 边际情况。)
uuid2()
似乎不再使用。
uuid3()
通过在某个名称空间(例如URL,域名等)中选择任意名称 的MD5哈希来生成UUID。
- 优点:提供了一种将UUID块分配给不同名称空间的好方法。轻松从名称中重现UUID。
- 缺点:如果你已经有一个独特的名字,为什么你需要一个UUID?
- 可能的冲突:如果您在名称空间内重用名称,或者存在散列冲突。
uuid4()
生成完全随机的UUID。
- 优点:没有隐私问题。不必生成唯一的名称。
- 缺点:UUID没有结构。
- 碰撞可能:如果你使用了一个坏的随机数发生器,重用一个随机种子,或者是非常非常不幸的。
uuid5()
相同uuid3()
,除了使用SHA-1散列MD5代替 。正式优先于uuid3()
。
但是这意味着我必须重写一些零件+获得碰撞的可能性。
有没有我想不到的聪明黑客?