Могут ли пользователи ПК писать в общую часть ОП сервера?
Могут ли пользователи ПК писать в общую часть ОП сервера? В учебных целях создал переписку через запись в общий файл и обновление через AJAX. Можно ли сделать так чтобы пользователи общались не через общий файл а через общую переменную php в ОП сервера а файл лишь перезаписывался через заданный интервал?
lexaxaxa: вам привели в пример не PHP. Это технологии основанные на Java. Вопрос формулировать нужно было так "Хочу сделать час где будут моментально появляться сообщения, на чем писать лучше?". Кстати можете еще comet посмотреть. Аналогичная вещь для решения вашего вопроса. Также websockets можете почитать.
Про формулировку вопроса: вопрос сформулирован правильно: сейчас изучаю возможности PHP. Подходящие ответы:а)можно(пояснение как) б) нет такой возможности у PHP, можно реализовать переписку только через файлы и через файлы БД.
Да...забыл отметить - в учебных целях нужно обойтись без БД). И вобще есть сомнения, что БД эффективнее чем работа с файлами напрямую при отсутствии сложного поиска. Разве что БД применяет кэширование в памать.
> Да...забыл отметить - в учебных целях нужно обойтись без БД).
В учебных целях можно и без компьютера обойтись, по старинке на бумажке.
> И вобще есть сомнения, что БД эффективнее чем работа с файлами напрямую при отсутствии сложного поиска.
Самоуверенности вам не занимать)) Вы сможете написать полнотекстовый поиск целиком на php, который не сожерт у вас всю оперативку?))
> Разве что БД применяет кэширование в памать.
БД разруливает на порядки больше кейсов. Что на счет конкурентной записи?
> БД же использует работу с файлами C/C++ правильно?
БД взаимодействует с файлами через драфвера файловой системы конкретной ОС, php тоже.
> просто для Node нужно знание сетевого администратора linux....
На тмао же уровне, что и у php, только проще. Тот же apache/nginx/lighttpd/что там у вас поднимать не нужно.
> пока нет времени на его приобретение)
Покупать бесплатное? Зачем?
СУБД написана на С.С++---> следовательно с++ использует те самые драйвера. приобретение про знание.и вобще-смотрите ответы-там есть про разделяемую память-именно то я и искал
все таки СУБД перво-наперво работает с жестким диском...а все остальное это для того чтоб снизить побочный эффект медленного доступа к диску. а у меня вопрос был про ОП
lexaxaxa
> СУБД написана на С.С++---> следовательно с++ использует те самые драйвера.
Не позорься)) Если не знаешь о чем говоришь - лучше не говори. Что на счет ElasticSearch (Java), InfluxDB (Golang), Oracle (Java), KDB+ (pure C).
Еще раз. Все равно на чем БД написана, на php ты вот ни как не сделаешь лучше. Что php, что C/C++, что NodeJS, да что угодно для работы с файловой системой использует драфвера этой самой файловой системы. А они обычно на pure C, или asm-е пишутся.
> все таки СУБД перво-наперво работает с жестким диском...а все остальное это для того чтоб снизить побочный эффект медленного доступа к диску.
Вместо этого предлагаешь использовать файлик, который живет в абстрактном вакууме. Еще раз - БД для данных - это может стать вопросом только в случае невероятно узких юзкейсов, например шардированная система пользовательских переписок под нагрузкой в N GBit/s, содержащая M Tb данных может не справляться при волновом обновлении истории на всех шардах. Тут действительно может потребоваться даже свою БД писать.
Я напомню: каждый процесс на php жестко ограничен по памяти, что будешь делать, когда файл станет ббольше порога?)) Увеличишь лимит, в 1 прекрасный момент на твоем сервисе сможет работать только 1 человек
про позорься- под с++ я имел в виду с.с++ и конечно asm если необходимо. в чем я позорюсь? что не написал про си. ну это же подразумевается-вобщем речь идет о системных языках
key-value СУБД: redis например. Средствами чистого php - никак, это state-less язык. Можно конечно посмотреть в сторону сохранения в xcache, но нужно себя готовить к тому, что эти данные пропадут в любой момент.
Если вдаваться в экзотику можно тот же файл держать в ramfs, технически он будет в оперативке, но это не самая лучшая идея.
RAM за счет скорости не гарантирует сохранности. Элементарный сбой электричества - и все данных нет. Именно по этому в оперативке держат быстрые данные, которые в любой момент спокойно можно потерять.