Текущий процесс следующий:
1. ПОЛУЧИТЕ длину номера 24.
2. если число повторяется в текущем наборе данных, верните true;иначе верните false и сделайте так, чтобы число присоединилось к набору данных.
теперь я использую тип набора redis для хранения набора данных.вопрос заключается в том, что объем хранилища теперь превышает 5 ГБ, поскольку набор данных становится все больше с увеличением количества пользователей.
и, если я хочу уменьшить объем хранилища и сохранить скорость обнаружения быстро, любой планя могу выбрать?даже заменить redis - это нормально.
до сих пор have Я думаю об использовании древовидной структуры для хранения набора данных вместо типа набора redis.но когда я использую массив PHP (как дерево) для хранения набора данных.хранилище больше.
function isUnique($mobile){
$arr = str_split($mobile, 10);
global $tree;
$isUnique = false;
$tmp = $tree;
foreach($arr as $item){
if(! isset($tmp[$item])){
$isUnique = true;
break;
}
$tmp = $tmp[$item];
}
unset($tmp);
if($isUnique){
$tmp = &$tree;
$keys = [];
foreach($arr as $value){
if(empty($tmp[$value])){
$tmp[$value] = [];
}
$tmp = &$tmp[$value];
}
}
unset($tmp);
return $isUnique;
}
Друзья советуют использовать растровое изображение для сохранения данных.но число имеет длину 24 бита, растровое изображение будет по-прежнему использоваться вне хранилища.
любой может дать некоторые идеи, много думает.