ну обычная база данных которая намного быстрее текстового файла
ну механизм записи примерно такой:
get_lock(\'имя_нашей_базы\');
dbmopen(%az ,"имя_нашей_базы",0666) || die;
if ($az{$value}) { тут создаем уникальный ключ value }
if (! $az{$value}) { $az{$value}="наши_даннве"; }
dbmclose(%az);
relase_lock(\'имя_нашей_базы\');
насчет уникальности : сделай так чтобы первый ключ єто 1 второй 2 третий 3 и так далее просто увеличиваю
проверять на уникальность будет очень удобно потому что у нас же хэш %az тоесть ты перед тем как задавать ключ можешь проверить есть ли даннай ключ в массиве @ключи= keys % az