• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie danych z bazy co 5 minut.

Object Storage Arubacloud
0 głosów
223 wizyt
pytanie zadane 22 lipca 2016 w PHP przez Menda Nowicjusz (120 p.)
Witam,

Muszę zrobić na stronie ranking, jednak odświeżanie danych co wejście na stronie za bardzo obciąża serwer.

Chcę aby dane były odświeżane raz na 5 minut, jednak nie chcę do tego używać crona.

Myślałem o cachowaniu zapytań PDO jednak kompletnie nie wiem jak się do tego zabrać ponieważ w internecie ciężko cokolwiek znaleźć na temat cachowania.

Co polecacie zrobić aby pobierać dane raz na 5 minut? Pozdrawiam.

2 odpowiedzi

0 głosów
odpowiedź 23 lipca 2016 przez efiku Szeryf (75,160 p.)
Myślę, że jak poszukasz pod słowem kluczowym:

"PHP and redis" to znajdziesz to czego szukasz.

Tutaj po prostu trzeba użyć cache. I tutaj wchodzi redis.

Dane możesz za pomocą corna aktualizować do cache redisa.

Zaś klienci niech po prostu dostają dane z cache.

Kilka linków na początek:

https://scotch.io/tutorials/getting-started-with-redis-in-php

( Z tym, że nie musisz robić git clone predis. Wystarczy composer  i za pomocą jego pobrać bibliotekę )

Zresztą, zobacz tu:

http://stackoverflow.com/a/12713441
–1 głos
odpowiedź 23 lipca 2016 przez natrov Gaduła (3,970 p.)
edycja 23 lipca 2016 przez natrov

Osobiście polecam prosty system cachowania, który działa tak:

1. pobierz dane z bazy

2. renderuj stronę wynikową do pliku

3. ustaw czas ważności pliku na x sekund

4. jeśli jest plik i czas pliku > 0

5. wczytaj ranking z pliku

6. w przeciwnym wypadku odśwież plik informacjami z bazy.
 

<?php
 // jeśli wyrzuca błąd  Notice: Undefined variable: main_content in C:\xampp\htdocs\plik.php on line 9 zmień w config.ini
 // z error_reporting = E_ALL | E_STRICT na error_reporting  =  E_ALL & ~E_NOTICE
 
$cache_sec = 15; 
$f = 'highscores.tmp';
if(file_exists($f) && filemtime($f) > (time() - $cache_sec))
{
	$main_content .= file_get_contents($f);
	echo $main_content;
}
else {
	$main_content .= '<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="4" WIDTH="100%">
	<tr BGCOLOR="brown">
		<TD COLSPAN="4">Statistic</TD>
	</TR>
	<TR BGCOLOR="brown">
		<TD>ID</TD>
		<TD>Name</TD>
		<TD>Level</TD>
		<TD>Exp</TD>
	</TR></TABLE>';
	// tutaj wykonywanie zapytań do bazy danych oraz wstawianie wartości do tabeli

	
	echo $main_content;
	
	file_put_contents($f, $main_content);
}

?>



Pozdrawiam

komentarz 23 lipca 2016 przez efiku Szeryf (75,160 p.)
Popraw ten przykładowy kod, serio ;)

Bo skopiuje go i rozwali sobie stronę, albo zrobi sobie krzywdę.
komentarz 23 lipca 2016 przez natrov Gaduła (3,970 p.)
Wykorzystywałem tego typu skrypty na swoim serwerze, gdzie za 20 zł trzymałem 150 ludzi, apache, mysql, silnik gry i się wszystko trzymało. Więc nie wiem w czym problem, yyy to było 3 lata temu...

Podobne pytania

0 głosów
1 odpowiedź 648 wizyt
pytanie zadane 7 grudnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
4 odpowiedzi 2,856 wizyt
pytanie zadane 8 grudnia 2017 w PHP przez kamilocl Nowicjusz (220 p.)
0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 20 listopada 2016 w PHP przez KrysztoSLU Użytkownik (690 p.)

92,625 zapytań

141,478 odpowiedzi

319,822 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...