AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Konzept für einen kompletten dateibasierten Webseiten-Cache
Thema durchsuchen
Ansicht
Themen-Optionen

Konzept für einen kompletten dateibasierten Webseiten-Cache

Ein Thema von Matze · begonnen am 7. Jun 2007 · letzter Beitrag vom 7. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Konzept für einen kompletten dateibasierten Webseiten-Cache

  Alt 7. Jun 2007, 14:20
Moin zusammen,

hin und wieder bin ich am Überlegen, ob ich den Inhalt meiner Webseite komplett in Dateien cachen sollte, Grund ist der, dass die Datenbank gelegentlich nicht erreichbar ist (dies liegt vorwiegend an enormen Spamwellen zur Zeit). Somit würde der Cache
  1. die Datenbank ein klein wenig entlasten (vernachlässigbar)
  2. dafür sorgen, dass die Seite auch weiterhin erreichbar ist, auch wenn die Datenbank dies nicht sein sollte
Ich bin momentan zeitlich sehr eingespannt, aber möchte dennoch mal grob einen Entwurf haben, wie so etwas aussehen könnte oder ob ich's gleich bleiben lassen sollte.

Ich sehe folgende Hürden bei diesem Vorhaben:
  1. Dynamischer Seiteninhalt führt zu einem großen Cache (Webspace habe ich jedoch momentan noch genügend)
  2. Daten, wie die aktiven Sitzungen, Statistiken etc. müssten vor bei einem Datenbankausfall in Dateien ausgelagert und bei einer erneuten erfolgreichen Verbindung zur Datenbank in diese übertragen werden.
In letzterem sehe ich das Hauptproblem des ganzen.

Den Bloginhalt könnte ich in einer überschaubaren Ordnerstruktur verwalten, was kein Problem sein sollte, zumindest nicht das Speichern. Doch lese ich beispielsweise aus der Datenbank die Anzahl aller Blogeinträge aus, um die Seitenzahlen zu berechnen. Das ohne Datenbank zu bewerkstelligen könnte schwer werden, da die Abfragen mit Filtern und ähnlichem mit der Datenbank sehr einfach gehen und ohne weiß ich gar nicht, wie man das macht. Evtl. die Ergebnisse der getätigten Abfragen speichern (Arrays extern zu cachen stellt für mich kein Problem dar), denn diese ändern sich ja nicht allzu häufig (bis auf die Statistik und Sitzung-Geschichte).

Ich persönlich würde fast sagen, es ist mit vertretbarem Aufwand nicht möglich, auf die Datenbank zu verzichten, doch vielleicht könnte ihr mir ein paar Tipps geben. Mir ist das auch nicht sonderlich wichtig, es wäre aber ein nettes Feature.


Sommerliche Grüße wünscht
Matze
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:26
Auf welche Technik basiert deine Seite für php gibt es ja verschiedene Lösungen für diese Problem:

http://pecl.php.net/package/apc
http://turck-mmcache.sourceforge.net/index_old.html
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:31
Hallo Markus,

was du verlinkt hast, cacht lediglich ausgewerteten PHP-Code und das benötige ich nicht. Welche Technik ich nutze, kann ich dir nicht sagen, eben eine kleine Template-Klasse, ähm jo, normales PHP (kompatibel zur Version 4) eben.

Arrays, dessen Inhalte aus der Datenbank kommen, cache ich bereits in Dateien (Konfiguration und ähnliches, was sich kaum ändert). Ich denke, über intelligentes Cachen der Ausgelesenen Daten (das sind dann im Prinzip Arrays) und Auswerten derselben lässt sich das irgendwie realisieren.
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:35
hi,

also es gibt die möglichkeit den output in eine variable zu schreiben, diesen inhalt dann in einer datei ablegen und gut ist... und das ganze mit einem timestamp versehen, und regelmäßig ersetzten... eigentlich ganz einfach, geht am besten mit einer include datei die direkt als erstes eingebunden wird...
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:36
Mit Technik meine ich PHP/ASP/ASP.Net...
PHP-Caches cachen ja ganze Seiten, so daß wenn die selbe Anfrage kommt diese aus dem Cache beantwortet wird.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:39
Hallo

Zitat von f.siebler:
also es gibt die möglichkeit den output in eine variable zu schreiben, diesen inhalt dann in einer datei ablegen und gut ist... und das ganze mit einem timestamp versehen, und regelmäßig ersetzten... eigentlich ganz einfach, geht am besten mit einer include datei die direkt als erstes eingebunden wird...
Ich habe eine Klasse, die genau auf diesem Wege Arrays cacht, das ist also kein Problem.

Zitat von mkinzler:
PHP-Caches cachen ja ganze Seiten, so daß wenn die selbe Anfrage kommt diese aus dem Cache beantwortet wird.
Ok, aber das wäre in der Art auch kein Problem, doch muss ich die Sitzungen irgendwie verwalten können. Man sollte sich auch in der Zeit anmelden und loskommentieren können. Schön wäre es auch, wenn die Daten für die Statistik (User-Agent & Co) nicht verloren gehen.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:48
Hallo,

dann ist das, was du willst, doch ein ersatz für die mysql-datenbank.

ich würd dafür am besten eine sqllite-db vorhalten, mit allem, was du brauchst, wenn die db grad nciht da ist - userdaten etc.
du brauchst in deinem source dann immer einen fallback - für anmeldung, für comments, etc.
Neuer content wird dann zwischengespeichert bis die db wieder "da" ist.

und halt n statischen cache, der solange die db da ist, immer mit jeder änderung der seite (die du als admin ja immer anstößt bzw. ein user der kommentiert o.ä.) aktualisiert wird.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 14:58
wenn aber eh alles aus der DB in der Cache ebenfalls drin wäre,
warum dann nicht gleich auf MySQL verzichten?

es gibt ja Dateibasierende Datenbanken ... die geringste Aufwand wäre dann der, daß einfach die MySQL-Anfragen an die Text-DB umgeleitet werden würden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 15:03
Moin,

also eine zweite Datenbank möchte ich beim besten Willen aber nicht einführen.

@himi: Ich denke das Auslesen aus der DB ist bei komplexeren Abfragen deutlich schneller, als Arrays auszuwerten. ich möchte daher nur den ganzen Inhalt aus der DB lesen, wenn diese nicht erreichbar ist.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Konzept für einen kompletten dateibasierten Webseiten-Ca

  Alt 7. Jun 2007, 15:20
...du kannst ja die komplette mysql-db auf eine dqllite-db mirrorn - aber eben immer nur schriebenderweise, und lesend erst dann, wenn die mysql-db schlappmacht.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz