Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хранение данных в оперативной памяти сервера
 
 автор: serenya1983   (07.03.2010 в 17:24)   письмо автору
 
 

Есть задача сохранять в файл на дике различные действия пользователя! Если писать в файл после каждого нового события, наверное не очень разумно!
Возможно ли как-то реализовать на PHP (без применения BD), создаётся ссылка на участок памяти, если этот участок превышает один гигабайт то часть участка записываеся на диск и удаляется из памяти! Причём что б писать в этот участком памяти данные от всех клиентов!

Например, есть переменная типа:
клиент 1: v = "iduser1,data1";
клиент 2: v = "iduser2,data2";
задача v сохранить в оперативной памяти, иметь к ней доступ, и сохранять в файл когда размел превышает 1 гагабайт.

Возможно ли вобще такое с применением PHP ???

  Ответить  
 
 автор: exp   (07.03.2010 в 19:33)   письмо автору
 
   для: serenya1983   (07.03.2010 в 17:24)
 

выделенная оперативная память останется нетронутой только пока процесс под который она выделена её не освободит. php если включен как cgi-модуль то это просто кратковременные процессы, каждый раз новые. А если включен модулем apache, то процесс один apache (сужу по своему win32ts), но при запуске функций интерпритатора там тоже контролируются все эти выделения и освобождения памяти потоками.
Базы данных специально созданы для быстрого доступа к данным.
Есть только mod_dbd , который немного может оптимизировать сам процесс подключения к серверам баз данных. Пока не особо смог заценить его ценность,)
В mysql есть InnoDB-таблицы , практически в памяти и крутятся, но когда я выделил целый гиг под InnoDB , при 3x всего имеющихся , мне сильно не понравилось как подогревавает процессор при перезапусках, и какой объём файла подкачки начинает использоваться :) но работало.


Без бд только по позициям курсора на файл, или каждому по файлу. запросы к файловой системе тоже не слишком быстрая штука, ещё если массовый доступ к одним и тем-же файлам и блокировки. можно просто сделать переопределить функции обработки сессий. Но код не подскажу :) Сам не знаю

  Ответить  
 
 автор: Loki   (07.03.2010 в 20:43)   письмо автору
 
   для: serenya1983   (07.03.2010 в 17:24)
 

То что Вы описываете, называется memcached.
http://ru.wikipedia.org/wiki/Memcached

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования