nixp.ru v3.0

26 мая 2017,
пятница,
01:03:28 MSK

DevOps с компанией «Флант»
propeller написал 3 ноября 2005 года в 22:16 (569 просмотров) Ведет себя как мужчина; открыл 53 темы в форуме, оставил 158 комментариев на сайте.

Предистория: занадобилось вдруг так неожиданно иметь на пхп возможность записывать информацию не в файлы, а в оперативную память. и так там довольно долго держать (представьте себе что-нибудь типа форума; и Вам там хочется считать число просмотров темы!). Суть в том, что не хочется тратить время на открытие\закрытие файла. ну а скрипт на пхп очень быстро перестает существовать.

итак, вопрос. какие есть возможности реализации этой задачи?

Как вариант сразу рассмотрел программу на Си, к которой будет идти обращение через сокеты, а сама программа раз в сутки пишет информацию в файл, а так все время держит данные в оперативной памяти. но я неожиданно узнал, что этот случас все равно открывает файл и пишет все туда, а уже потом отдает программе.

как реализовать задачу, чтобы было все-таки быстрее простого открытия файлов?

// Тему переместил(а) fly4life из форума «UNIX FAQ».

Longobard

Ээээ. Если речь о счетчике просмотров — кто мешает его оформить в виде поля в таблице со списокм тем?

А вобще открытие/закрытие файла происходит довольно шустро, так что не вижу смысла не использовать файлы.

propeller
LONGOBARD
Ээээ. Если речь о счетчике просмотров — кто мешает его оформить в виде поля в таблице со списокм тем?

Ну как всунуть счетчик в дизайн, это уж как-нибудь придумать можно. есть проблемы более насущные. скажем так, если бы это был не пхп, а сервлет на java, то можно было бы просто держать переменную в памяти и раз в сутки писать в файл чисто для подстраховки. для пхп так не получится. не хочу писать на каждый клик в файл. по-моему это слишком долго для одного вшивого клика.

Genie

две части: одна сисдит себе в фоне работает, слушает сокет и считает число его открытий (или закрытий)

а по клику и, соостветственно, при необходимости, открывать/закрывать сокет из php.

propeller

Да эта картина ясна. сервер на Си и клиент на пхп. интерес весь в том, чтобы поменьше потратить на это дело ресурсов. все-таки сокет дороже, чем файл открыть.

Мне интересно, нет ли других более быстрых вариантов для задачи.

Сейчас пробиваю именованые каналы. они должны работать быстрее.

Genie

это unix-сокеты-то медленно открываются? :)

впрочем, что у тебя за хочтинг такой, что тебе нужно с такой маленькой задержкой обрабатывать клики?

1 миллион кликов в секунду, что ли? на 10Гбит канале?

propeller

У меня сайт, на который ходят полтора человека в день. весь остальные 200 запросов формируют поисковики.

Но я даже думать не хочу, какой у меня сайт\хостинг!!! я хочу сделать как можно более быстрый сайт не ущемляя его функциональности!

не хочу я использовать ресурсы только потому, что их много. тем более, что хостинг у меня ну очень слабый. и так подтормаживает.

propeller
Genie
это unix-сокеты-то медленно открываются? :)

Ну не быстрее обычных файлов.

anonymous

тут вроде есть пример работы с сокетами

http://forum.panterweb.com/viewtopic.php?id=66