Веб-счетчики в файлах?
Как хранить счетчики в php скрипте без БД? Всегда использовал БД, но теперь я хочу более простую настройку... Использование файлов кажется проблематичным из-за блокировок файлов. Допустим, есть много одновременных подключений, и я хочу посчитать количество выполнений скриптов.
4 ответа
Я хочу посчитать количество выполнений скрипта
Настройте каталог, в который вы можете написать. Для каждого запроса создайте новый файл со случайным именем.
Вы подсчитываете количество выполнений скриптов, считая количество файлов.
Если вы делаете случайный выбор с низкой частотой столкновений, вы не потеряете счет или только очень, очень мало. Если вы знаете характеристики случайного источника и хеш-функции для имени файла, вы даже можете статистически сказать, сколько отсчетов вам нужно добавить.
<?php
$count_file = "counts.txt";
$counts = file($count_file);
$counts[0] ++;
$fp = fopen($count_file , "w");
fputs($fp , "$counts[0]");
fclose($fp);
echo $counts[0];
?>
Вы не хотите использовать базу данных и не хотите использовать файл. Я не думаю, что это возможно, не используя ни один из них.
Вы можете увеличить кэшированное значение в памяти, используя что-то вроде memcache. Это, вероятно, самое быстрое решение проблемы параллелизма.
Конечно, вы потеряете данные, если memcache будет очищен или перезапущен... сохранение файла в какой-то момент является единственным способом.