Допустим, у меня есть семейство пользовательских столбцов с уникальным именем ключа + предустановкой для конкретного клиента
<?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 последних добавленных пользователей (созданных ключей) на страницу и многостраничный макет, на каждой странице показаны более старые ключи
Единственный вариант, который я сейчас нашел, - это использование uuid из phpcassa
uuid1()
генерирует UUID на основе текущего времени и MAC
адрес машины.
- Плюсы: полезно, если вы хотите иметь возможность сортировать ваши UUID по времени создания.
- Минусы: потенциальная утечка конфиденциальности, поскольку она показывает, на каком компьютере она была создана и в какое время.
- Возможны коллизии: если два UUID генерируются в одно и то же время (в течение 100 нс) на одном компьютере. (Или несколько других маловероятных
крайние случаи.)
uuid2()
, похоже, больше не используется.
uuid3()
генерирует UUID, беря MD5-хэш с произвольным именем
которые вы выбираете в некотором пространстве имен (например, URL, имя домена и т. д.).
- Плюсы: Предоставляет удобный способ назначения блоков UUID различным пространствам имен. Легко воспроизвести UUID от имени.
- Минусы: если у вас уже есть уникальное имя, зачем вам UUID?
- Возможны коллизии: если вы повторно используете имя в пространстве имен или если произошла коллизия хешей.
uuid4()
генерирует совершенно случайный UUID.
- Плюсы: никаких проблем с конфиденциальностью. Не нужно генерировать уникальные имена.
- Минусы: нет структуры для UUID.
- Возможны коллизии: если вы используете плохой генератор случайных чисел, повторно используете случайное начальное число или вам очень, очень не повезло.
uuid5()
совпадает с uuid3()
, за исключением использования хеша SHA-1.
MD5. Официально предпочтительнее, чем uuid3()
.
Но это означает, что мне нужно переписать некоторые части + получить возможность столкновения.
Есть ли умные хаки, о которых я не думал?