Но если предполагается большая посещаемость, то файлам доверять нельзя из-за низкой скорости работы с диском и, как уже отмечали выше, проблем с блокировками (два процесса могут одновременно ломиться в один файл для обновления счётчика и/или чтения базы ключей, что рано или поздно приведёт к коллизиям).
Здесь нужно счётчик и базу выносить либо в реляционную (mysql), либо (что логичнее) в key-value БД (типа redis, memcache и т.д.). Тогда всех вышеперечисленных проблем можно збежать.
Спасибо скрипт работает, но в counter.txt прибавляет сразу по +2 было 2, обновил страницу стало 4 и тд. Хотя с эти решил проблему. Сам смог понять ))
И возможно ли сделать чтобы ключи не удалялись, а просто переходили в низ на строку. И если дошли до последнего ключа, до возвращаемся к первому ключи и так далее продолжать
LEOnidUKG: ну закидывайте в папку файлики с рандомным названием и считайте их, когда будет 1000 чистим папку и меняем значения.
А так хз, в чём проблема. ТС вы хотите, чтобы за вас написали или какие-то сложности в разработке и выборе метода решения?
Я бы хотел, чтобы написали. А то я не знаю ни чего в этом. Писал человек другой, а он пропал... Так и не доделал сайт
ukrdev: С файлом конечно неудачная идея, но если это единственный выход то желательно его лочить перед чтением и записью, а иначе считать не правильно будет при большом количестве запросов.
izbushka: Помочь можем, написать за вас.. тоже можем, но не будем :)
Алгоритм такой:
Чтоб меньше читать файлов предлагаю хранить в одном файле хиты и текущий ключ. например так: "12;KEY_IS_HERE".
1. вначале вашего search.php читаете число и ключ из файла, в котором хранятся хиты. Парсите его (explode(';',$line))
2. увеличиваете это число на 1
3. проверяете не больше ли оно 1000.
4. Если нет - пишете его назад в файл.
5. Если больше - читаете файл с ключами, достаете новый ключ, пишете в файл хитов число 1 и ключ.
6. отдаете ключ в свою программу
Спасибо за информацию, но я не умею писать на php. Всеми делами занимался другой человек, но он пропал. Уже как 2 месяца не отвечает мне. И поэтому обратился за помощью сюда.
Сайт делаю для рекламы adsense. Обещаю заплатить 10% от выхлопа, когда будет 1000 уников в день посещалка. Я посещение такое будет очень скоро. Просто был уже опыт в этих делах.
Как часто вы обновляете контент на сайте? Добавляете новые статьи?
Я использую технологии api. Контент берется с других сайтов автоматически. Мой сайт на подобии mrwhatis
Появилась идея: если с прокси никак у вас, то заходите на любой форум типа Русские в австралии, и там вам все сделают. )
Спасибо, я как раз этим занимаюсь 🤪
а так?
http://proxy-besplatno.com/from/Australia/
Так не пойдет, прокси Thailand и тд. Au не обнаружил...
---------- Добавлено 22.10.2013 в 09:36 ----------
Осталось найти бесплатный AU адрес :D
Информацию скину только в личку...
---------- Добавлено 22.10.2013 в 09:38 ----------
На бесплатном австралийском домене?
Видимо да, если кто-то из AU :)
Извините, но я частными консультациями не занимаюсь. Ни просто так ни за деньги. Просто нет времени.
Я просто хотел скинуть код, а на форуме в личку не могу написать тебе.
Было бы интересно, если ты смог написать реляционную к базе (mysql). Чтобы сбоя и лишних траблов не было
Можно. Замените
на
---------- Добавлено 24.09.2013 в 16:27 ----------
Там вы смешиваете счётчик и файл данных. Это лишает программу гибкости.
Написал в Skype. Жду ответ... Там проще пообщаться
На файлах алгоритм решения вашей задачи выглядит так:
Но если предполагается большая посещаемость, то файлам доверять нельзя из-за низкой скорости работы с диском и, как уже отмечали выше, проблем с блокировками (два процесса могут одновременно ломиться в один файл для обновления счётчика и/или чтения базы ключей, что рано или поздно приведёт к коллизиям).
Здесь нужно счётчик и базу выносить либо в реляционную (mysql), либо (что логичнее) в key-value БД (типа redis, memcache и т.д.). Тогда всех вышеперечисленных проблем можно збежать.
Спасибо скрипт работает, но в counter.txt прибавляет сразу по +2 было 2, обновил страницу стало 4 и тд. Хотя с эти решил проблему. Сам смог понять ))
И возможно ли сделать чтобы ключи не удалялись, а просто переходили в низ на строку. И если дошли до последнего ключа, до возвращаемся к первому ключи и так далее продолжать
ну закидывайте в папку файлики с рандомным названием и считайте их, когда будет 1000 чистим папку и меняем значения.
А так хз, в чём проблема. ТС вы хотите, чтобы за вас написали или какие-то сложности в разработке и выборе метода решения?
Я бы хотел, чтобы написали. А то я не знаю ни чего в этом. Писал человек другой, а он пропал... Так и не доделал сайт
Как лочить? .lock фалом? И .lock файл тоже потом лочить? :)
При большом кол-ве запросов одними файлами не отделаться
Ну да, будет большое кол-во запросов. Бывало сайт доходил до 80к уников в день :)
С файлом конечно неудачная идея, но если это единственный выход то желательно его лочить перед чтением и записью, а иначе считать не правильно будет при большом количестве запросов.
ukrdev, а вы можете помочь реализовать?
Помочь можем, написать за вас.. тоже можем, но не будем :)
Алгоритм такой:
Чтоб меньше читать файлов предлагаю хранить в одном файле хиты и текущий ключ. например так: "12;KEY_IS_HERE".
1. вначале вашего search.php читаете число и ключ из файла, в котором хранятся хиты. Парсите его (explode(';',$line))
2. увеличиваете это число на 1
3. проверяете не больше ли оно 1000.
4. Если нет - пишете его назад в файл.
5. Если больше - читаете файл с ключами, достаете новый ключ, пишете в файл хитов число 1 и ключ.
6. отдаете ключ в свою программу
Спасибо за информацию, но я не умею писать на php. Всеми делами занимался другой человек, но он пропал. Уже как 2 месяца не отвечает мне. И поэтому обратился за помощью сюда.
Сайт делаю для рекламы adsense. Обещаю заплатить 10% от выхлопа, когда будет 1000 уников в день посещалка. Я посещение такое будет очень скоро. Просто был уже опыт в этих делах.