Глобална променлива

hrisiz

Active Member
Joined
Feb 3, 2010
Messages
429
Reaction score
81
Тука съм се заел с едно сайтче и искам да пробвам една системка да си направя, но ми трябва една глобална променлива, която да седи на мойта рам. Под глобална имам предвид, че искам да запази на рамта една променлива, която да се достъпва при изпращане на request от клиентите. Примерно да кажем да държи броя на хората, който са в сайта всеки път, когато някой логне тази променлива се увеличава с едно. Знам как ще стане с файл на HDD, но искам да го оптимизирам от гледна точка на това, че това което ще се съдържа на променливата няма да е кой знае какво и ще се обновява много често, а файловете като цяло се четат бавно поради ограниченията на HDD и това, че прехвърлям от HDD на рам и чак тогава ползвам. Някакви идей как да направя такава променлива?

Предполагам, че след изпращане на данните към клиента PHP си трие рамта, която е ползвало за дадения request. Това което искам накратко е да се направи променлива, която да не се трие след приключване на request-а.


P.S. Извинявам се сега видях, че съм го постнал в Software, а темата е по-скоро за PHP.
 

RaFa

Team Member
Joined
Jan 24, 2009
Messages
783
Reaction score
472
Memcached. Най-лесното решение, пускаш Memcached сървъра, добавяш Memcached екстеншъна за PHP и после:

PHP:
$mmc = new Memcached();
$mmc->addServer("127.0.0.1", 11211);
$totalOnline = $mmc->get('online_users') + 1; // Тук зависи изцяло от теб как ще определиш дали потребителят е записан вече или не
$mmc->set('online_users', $totalOnline);

Но според мен не си заслужава за записването на една цифра да се използва каквото и да е записване в паметта. Работата с файловата система е достатъчно бърза, а ако използваш база с данни - само първоначалната комуникация отнема време (~150ms), после заявките се изпълняват за отрицателно време.
 
Last edited:
  • Like
Reactions: hrisiz