Предистория: занадобилось вдруг так неожиданно иметь на пхп возможность записывать информацию не в файлы, а в оперативную память. и так там довольно долго держать (представьте себе что-нибудь типа форума; и Вам там хочется считать число просмотров темы!). Суть в том, что не хочется тратить время на открытие\закрытие файла. ну а скрипт на пхп очень быстро перестает существовать.
итак, вопрос. какие есть возможности реализации этой задачи?
Как вариант сразу рассмотрел программу на Си, к которой будет идти обращение через сокеты, а сама программа раз в сутки пишет информацию в файл, а так все время держит данные в оперативной памяти. но я неожиданно узнал, что этот случас все равно открывает файл и пишет все туда, а уже потом отдает программе.
как реализовать задачу, чтобы было все-таки быстрее простого открытия файлов?
// Тему переместил(а) fly4life из форума «UNIX FAQ».
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ээээ. Если речь о счетчике просмотров — кто мешает его оформить в виде поля в таблице со списокм тем?
А вобще открытие/закрытие файла происходит довольно шустро, так что не вижу смысла не использовать файлы.
Ну как всунуть счетчик в дизайн, это уж как-нибудь придумать можно. есть проблемы более насущные. скажем так, если бы это был не пхп, а сервлет на java, то можно было бы просто держать переменную в памяти и раз в сутки писать в файл чисто для подстраховки. для пхп так не получится. не хочу писать на каждый клик в файл. по-моему это слишком долго для одного вшивого клика.
две части: одна сисдит себе в фоне работает, слушает сокет и считает число его открытий (или закрытий)
а по клику и, соостветственно, при необходимости, открывать/закрывать сокет из php.
Да эта картина ясна. сервер на Си и клиент на пхп. интерес весь в том, чтобы поменьше потратить на это дело ресурсов. все-таки сокет дороже, чем файл открыть.
Мне интересно, нет ли других более быстрых вариантов для задачи.
Сейчас пробиваю именованые каналы. они должны работать быстрее.
это unix-сокеты-то медленно открываются? :)
впрочем, что у тебя за хочтинг такой, что тебе нужно с такой маленькой задержкой обрабатывать клики?
1 миллион кликов в секунду, что ли? на 10Гбит канале?
У меня сайт, на который ходят полтора человека в день. весь остальные 200 запросов формируют поисковики.
Но я даже думать не хочу, какой у меня сайт\хостинг!!! я хочу сделать как можно более быстрый сайт не ущемляя его функциональности!
не хочу я использовать ресурсы только потому, что их много. тем более, что хостинг у меня ну очень слабый. и так подтормаживает.
Ну не быстрее обычных файлов.
тут вроде есть пример работы с сокетами
http://forum.panterweb.com/viewtopic.php?id=66