В настоящее время мы используем ключи MD5 для хэша, которые мы хотим найти в memcached.Использование crc32 over md5 для хэширования ключей memcached
Основной пример является:
$sql = "SELECT * FROM articles WHERE id = 1";
$key = md5($sql);
if (!$results = $memcache->get($key)) {
$results = $db->query($sql);
$memcache->set($key, $results);
}
Основных размеров всех 32 байта, как он использует MD5 хэш ключа.
Мы рассматриваем с помощью crc32 вместо хэш ключа для сохранения памяти например:
$key = hash('crc32', $sql);
Это создает ключ только 8 байт.
Является ли это достаточно хорошим решением для замены MD5 в качестве ключевого хэша? Существует ли увеличение потенциальных столкновений с ключами?
MurmurHash, похоже, генерирует 32 байта, похожие на MD5, это нормально? – fire
MurmurHash3 (последняя) поставляется в 32-битной и 128-битной версиях. Какую реализацию вы используете? (и как вы его используете?) – robertklep
32-разрядная версия, я установил расширение PHP MurmurHash3 и запустил 'echo murmurhash3 ('test', 4);' и он генерирует 32-байтовую строку, которая не является намерением, я Я ищу короткие ключи. – fire