Seite 1 von 1
Memcache für ein Forum
Verfasst: 19.08.2010, 12:30
von marc77
hallo,
memcache ist auf meinem server installiert. Ich hab jetzt schon soviele tutorials gelesen aber wirklich umsetzen kann ich es leider nicht.
Sobald ich das einmal richtig verstanden habe...in einem konkreten fall in meinem code...komm ich denke ich zurecht.
Brauch ich z.b. eine memcache klasse?
wieviele MB sollte ich für memcache bereitstellen?
wie schreibe ich eine bestehende sql abfrage so um, dass sie dann gecacht wird?!
danke
Verfasst:
von
Content Erstellung von
ABAKUS Internet Marketing
Ihre Vorteile:
- einzigartige Texte
- suchmaschinenoptimierte Inhalte
- eine sinnvolle Content-Strategie
- Beratung und Umsetzung
Jetzt anfragen:
0511 / 300325-0
Verfasst: 19.08.2010, 14:12
von tmyp
Je nachdem, was Du mit memcache-Klasse meinst brauchst Du eine, oder auch nicht. Du brauchst einen Client für memcache.
Wieviel MB Du memcache geben solltest hängt davon ab, wie groß ein durchschnittliches gecachtes Objekt sein soll und wieviele Du davon haben willst.
Das SQL schreibst Du gar nicht um, Du prüfst, ob es ein gecachtes Ergebnis gibt, bevor Du das SQL ausführst.
Wenn es keins gab, läuft das SQL und anschließend packst Du das Ergebnis in den Cache.
Die Einführung auf Wikipedia finde ich recht gut verständlich.
Verfasst: 20.08.2010, 09:53
von marc77
hast du vielleicht auch eine statistik?
es gibt ja dieses php statistik script für memcache, leider ist aber die seite offline
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 20.08.2010, 10:22
von tmyp
Was für eine Statistik meinst Du?
Verfasst: 20.08.2010, 12:47
von marc77
ich wollte das von harun yari...
ist leider nur noch im cache, da die seite offline ist..was vergleichbares hab ich nicht gefunden...
https://webcache.googleusercontent.com/ ... clnk&gl=de
Frage zu SQL mit memcache:
vorher:
Code: Alles auswählen
$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
FROM " . CATEGORIES_TABLE . " c
ORDER BY c.cat_order";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$category_rows = array();
while ($row = $db->sql_fetchrow($result))
{
$category_rows[] = $row;
// Kategorie Titel
if ( $row['cat_id'] == $viewcat ) { $this_cat_title = $row['cat_title']; }
// Kategorie Titel
}
$db->sql_freeresult($result);
nachher:
Code: Alles auswählen
$kategorienholen = $memcache->get("kategorien");
if (!$kategorienholen)
{
$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
FROM " . CATEGORIES_TABLE . " c
ORDER BY c.cat_order";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$category_rows = array();
while ($row = $db->sql_fetchrow($result))
{
$category_rows[] = $row;
// Kategorie Titel
if ( $row['cat_id'] == $viewcat ) { $this_cat_title = $row['cat_title']; }
// Kategorie Titel
}
$db->sql_freeresult($result);
$memcache->set("kategorien",$kategorienholen,0,120);
}
leider gehts nicht...wo ist hier mein fehler? danke
Mysql tuning
Verfasst: 20.08.2010, 14:13
von seonewbie
Ehrlich gesagt klingt das als wenn Du von MySql Optimierung
nicht die Bohne Ahnung hättest. Es bringt dir gar nicht mit memcache
zu hantieren ohne das Du die Grundlagen verstanden hast.
Das ist so als wenn Du einen Fahranfänger einen Ferrari gibst.
Kannst Du mit Tuning-primer und mysqltuner richtig umgehen?
https://serversupportforum.de/forum/sql ... cript.html
https://www.huschi.net/12_302_de.html
https://www.huschi.net/10_54_de.html
https://www.huschi.net/10_299_de.html?highlight=tuning
Wenn Du das verstanden hast brauchst Du für ein einzelnes Forum
garantiert keinen Memcache!
Memcache wird benötigt für Multiplattformen also WordpressMU, Server wo
kostenlose Foren angeboten werden ( also ein paar hundert)
Gruß
Micha
Verfasst: 20.08.2010, 15:05
von marc77
richtig, man kann nicht alles wissen. wenn du es machen magst, nenn mir deinen Stundenlohn oder sag mir jemand der es macht und davon ahnung hat.
Verfasst: 31.08.2010, 15:24
von TonyBologni
@marc77:
Lass Dich nicht verunsichern!
Memcache macht natürlich auch für ein einzelnes Forum etc. Sinn. Für jede Website, bei der die Performance optimiert werden soll und man "teure" Funktionen (wie DB Abfragen) hat, die sich wiederholen. Wenn fast nur unterschiedliche Abfragen erzeugt werden, dann wird man kaum Cache Treffer haben. Ich habe jahrelang ein von mir selbst programmiertes Forum betreut und dort war das Caching sehr effektiv bei den als Baum dargestellten Postings jedes Threads und der Übersicht der Threads (Themen).
Der Fehler in Deinem "nachher" Code ist, dass $kategorienholen nie mit den Daten aus der DB befüllt werden!
Anstatt
$memcache->set("kategorien",$kategorienholen,0,120);
sollte sowas stehen:
$memcache->set("kategorien",$category_rows,0,120);
Andere Fehler konnte ich auf den ersten Blick nicht sehen, aber wenn Du nie was in den Cache reinsteckst, bekommst Du auch nichts raus.
Du solltest eventuell noch die Compression verwenden (3. Parameter, 0 in Deinem Beispiel), wenn die zlib Erweiterung installiert ist oder installiert werden kann (einfach ausprobieren).
Ansonsten: Mein Stundensatz ist 53,- Euro ->
anton@stoeckl.de
Gruß, Tony