Online leden weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Robbert de Brock

Robbert de Brock

31/01/2011 06:31:16
Quote Anchor link
Beste mensen,

ik wil graag op mijn website ...
het aantal online leden weergeven, iemand een idee hoe dit moet?

Mvg,
Robbert-Jan


Link verwijderd i.v.m virus
[/modedit]
Gewijzigd op 22/08/2011 10:44:46 door Niels K
 
PHP hulp

PHP hulp

09/01/2025 06:05:45
 
Jordi Kroon

Jordi Kroon

31/01/2011 08:46:29
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$select
= 'SELECT id FROM user_table WHERE online = 1 ';
$query = mysql_query($select);
$rows = mysql_num_rows($query);

Echo 'online leden:'.$rows;

?>
 
Bas IJzelendoorn

Bas IJzelendoorn

31/01/2011 08:53:05
Quote Anchor link
Dus ik login -> klik na 2 minuten weg en dat sta ik nog ingelogd.

Je kan beter iets maken. dat het na bepaalde tijd (bijvoorbeeld: 1 minuut) de 1 (in het script van Jordi) verloopt als je geen actie meer hebt ondernomen.
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 09:25:08
Quote Anchor link
Inderdaad, en ik sla dat in een aparte tabel op voor zowel de ingelogde bezoeker als de gast. Als timeout gebruik ik iets van drie a vijf minuten....
 
Ozzie PHP

Ozzie PHP

31/01/2011 09:37:17
Quote Anchor link
Hoe werk je die tabel dan bij Aar? Met een cron job ofzo?
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 09:56:43
Quote Anchor link
Nee, gewoon bij elke view?

Een cronjob weet niet wie er op mijn site is.
Gewijzigd op 31/01/2011 09:57:16 door - Ariën -
 
Ozzie PHP

Ozzie PHP

31/01/2011 10:00:09
Quote Anchor link
Uhmm.. bedoel je dat je bij iedere view / pagina aanroep een complete tabel doorloopt en dan de users met een langere tijd dan x minuten uit die tabel gooit?
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 10:03:49
Quote Anchor link
Ja... niks mis mee.
 
Pieter Jansen

Pieter Jansen

31/01/2011 10:07:27
Quote Anchor link
Klopt, niks mis mee. PHP voert al deze zaken over het algemeen server-side uit. Load times zijn bijzonder laag.
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 10:12:26
Quote Anchor link
Een INSERT of een UPDATE is echt een druppel van een hele plas qua load gezien.
 
Ozzie PHP

Ozzie PHP

31/01/2011 10:15:02
Quote Anchor link
hmmm... oke

Ik dacht altijd dat een database bewerking best "heftig" was en dat het niet ten goede komt aan de performance. En dat je daarom dus ook het aantal database bewerkingen moet proberen te minimaliseren. Maar ik merk dat veel mensen op het forum er heel luchtig mee om gaan.

Maar wat nu als je een heeel druk forum hebt met wat zullen we eens zeggen, 3 miljoen leden? En die zijn allemaal tegelijk online. Dan kan het dus best gebeuren dat je 1 miljoen database aanroepen per seconde hebt. En als ie dan iedere keer die tabel moet doorlopen dan zou ik denken dat dat niet echt prettig is voor de server, en ook niet voor de database tabel (kans op beschadigingen????). Of maak ik me nu echt druk om niks?
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 10:19:18
Quote Anchor link
Een INSERT of een UPDATE ksot echt geen drol aan load.

Een SELECT zou erg CPU-intensief kunnen zijn als er een ingewikkelde query gebruikt wordt, maar zolang je de INDEXES goed hebt staan is geen groot gevaar voor traagheid.

Uiteraard moet je ook een goed genormaliseerde database hebben, dat is ook een belangrijke factor. Maar goed, anders kan je ook geen goede INDEXES plaatsen :-P
Gewijzigd op 31/01/2011 10:21:13 door - Ariën -
 
Pieter Jansen

Pieter Jansen

31/01/2011 10:19:55
Quote Anchor link
1 miljoen aanroepen gaat niet lukken. Ik gok dat Apache bij 10000 er al mee kapt, alhoewel, niet apache, maar MySQL ( en ik gok dat je dat gebruikt ).

Mysql heeft nou niet bepaald een goede ondersteuning voor persistent connection pooling. Als jij 1*10^6 leden hebt die elke seconde refreshen, dan heb je wel andere zaken om je druk om te maken.

Overigens, wat ik over het algemeen doe, ik hou een aparte tabel bij voor alle login acties, hier worden ook auth key`s en dergelijke opgeslagen en dus ook de status. Als je hier door heen lust, lus je over het algemeen door een vrij kleine tabel waar alleen de gelogde mensen staan.
 
Chris -

Chris -

31/01/2011 10:22:21
Quote Anchor link
Bij iedere bezoek pas je de gebruikersattribuut online aan met een NOW(). Dan selecteer je de die gebruikersattribuut, bij leden van wie de datum en tijd, in een periode van bijvoorbeeld 5 minuten ligt.

Simpel, maar je moet wel een genormaliseerde database hebben :-)
 
Ozzie PHP

Ozzie PHP

31/01/2011 10:39:10
Quote Anchor link
@Chris: wat bedoel je met gebruikersattribuut?

@Merijn: als het boven de 10.000 fout gaat, hoe doen de zware jongens dit dan? Denk aan Fok, nu.nl?

Of tonen zij gewoon het aantal online leden niet?
 
Pieter Jansen

Pieter Jansen

31/01/2011 10:55:17
Quote Anchor link
Geen idee, maar die draaien niet op 1 server. Ik denk ook niet dat ze een mysql database draaien. Misschien een Oracle db of misschien postgres? Al betwijfel ik dat laatste, omdat de read van pg 10x zo traag is als bijv. mysql.

Maar terugkomende op je vraag: 10k aanvragen per seconde is echt ongelooflijk veel. Als je nagaat dat sites als tweakers.net etc op 2,5k zitten, hoef je je daar nog niet druk om te maken.
 
Chris -

Chris -

31/01/2011 10:57:13
Quote Anchor link
Tabel gebruiker,
Tabel gebruikersattributen

Zodat je niet vooraf hoeft aan te geven in de database welke attributen (email, naam, leeftijd dat soort dingen) je wilt gebruiken. Door een genormaliseerde database kun je op die manier vrijwel onbeperkt dingen aanmaken en hoef je daar geen databasewijzigingen voor aanbrengen.
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 10:57:32
Quote Anchor link
Fok draait naar mijn weten op MySQL, en dan hebben ze zelfs een heel server voor MySQL klaar staan die wel wat load aan kan.
 
John D

John D

31/01/2011 11:00:10
Quote Anchor link
@Merijn: Ook de groten gebruiken gewoon MySQL en inderdaad op dedicated MySQL servers. Oracle is mucho te kostbaar voor ook voor de groten. Mega kostenpost als je dat efficient wil draaien (dus geen Oracle Express ofzo).
 
- Ariën  -
Beheerder

- Ariën -

31/01/2011 11:01:31
Quote Anchor link
Vanuit Tweakers weet ik dat ze met meerdere databases werken:
MySQL, PostgreSQL en MongoDB
 
Ozzie PHP

Ozzie PHP

31/01/2011 11:01:32
Quote Anchor link
@Chris: kun je een voorbeeldje geven welke velden jij dan in tabel gebruiker hebt staan en welke velden in tabel gebruikersattributen?
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.