kostenloser Webspace werbefrei: lima-city


Caching durch JSON?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    ich stell mich mal ganz dämlich (vllt bin ich das auch) und möchte caching betreiben.
    jetzt überleg ich so "wie macht mans vllt am leichtesten" und stelle fest: keine ahnung.
    am effizientesten wäre das ganze über ein php file, welches ein array beinhaltet, denke ich zumindest. doch erstmal die daten (zb ne sql-database) in arrayform zu bekommen sehe ich n bissel aufwendig.
    ist es ebenso effizient das ganze vllt über JSON zu machen? XML schließ ich mal aus, weil das noch ein bischen langsamer ist, jedoch ist JSON "akzeptabel"? oder überhaupt performant, oder bin ich da wieder beim speed der sql-database?

    die cache erstellung sehe ich mich json von der technik her wesendlich einfacher, auch die daten rausziehen ist nicht soo schwer, allerdings: ist es auch performant, das kann ich leider nicht einschätzen. da hoffe ich mal dass die profis hier mir dazu was sagen können =)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Bei schwierigen Joins, oder Sortierungen würde es vllt etwas bringen die Daten gleich im Dateisystem zu cachen, aebr eigentlich solltest du dir lieber Gedanken machen, wie du direkt Webseiten cachen kannst und dann nur aufrufen musst statt erst alle Daten zusammenzusammeln und dann einzufügen.
  4. Autor dieses Themas

    g****e

    ich hab ja aber nicht immer nur statischen krams um die ausgabe zu cachen. bei einem forum zb würde sich das nicht unbedingt anbieten find ich.
    ich gehe jetzt davon aus sowas wie konfigurationen aus der database zu cachen und ähnliche dinge.
  5. Premature Optimization is the Root of all Evil. Das hast du doch sicherlich schonmal gehört? Wenn nein, dann überdenke das und stelle fest, dass du gar nicht cachen willst ;)

    Ansonsten: Normalerweise solltest du entweder APC oder Memcached nutzen, um Daten zu cachen. Beide haben die Daten im Arbeitsspeicher und sind somit schnell. APC bietet sich an, wenn du nur einen Server hast, weil du es normalerweise sowieso schon installiert hast um den Opcode-Cache zu nutzen. Memcached bietet sich an, wenn du mehrere PHP-Server hast die alle auf einen Memcached-Server zugreifen sollen.
  6. Autor dieses Themas

    g****e

    den spruch haste schon zum ca 20gsten mal zu mir geschrieben^^ und wieder sage ich: es ist aber auch nicht falsch ein grundstein im skelett einzubauen.
    aber wieso sollte ich nicht cachen wollen? das verstehe ich nun nicht ganz :-S natürlich ists schwer und brigt risiken, doch ich denke mit herausforderungen kann man erst wachsen. und angeblich sei dies eine grundlegende technik die man beherrschen sollte, darum beschäftige ich mich damit ein bissel :-S

    APC als speicherung des objektcodes, bzw memcached als speicherverwaltung für längere haltung von speziellen werten sind sicherlich gut, allerdings will ich selbst die technik die dahinter steckt lernen und verstehen, wie ich caches EFFIZIENT nutzen kann. den output direkt cachen tu ich bei meinem eigenen wordpress plugin, weil ich weiß des ändert sich nciht so schnell. aber meine frage ist halt, wenn ich etwas effizientes, aber großes eben selbst programmiere, dann soll das schon gewisse grundlagen beinhalten. und das cachen hab ich bis jetzt im web nicht direkt gute quellen zu gefunden. JSON war ne idee von mir, für alle weiteren ideen bin ich offen =) ich will alles lernen was es zu lernen gibt, aber wer weiß, wäre JSON dafür geeignet?
    und ich gehe nicht zwingend davon aus dass ich einen eigenen server besitze, sondern auch auf lima-city und ähnlichen servern bin, wo ich nu nciht so einfach serverplugins installen kann^^
  7. Das Problem ist nun mal, dass ein Datenbank-System (wie z.B. MySQL) einen eigenen Cache im Arbeitsspeicher hält und somit viel schneller als eine „normale“ Datei ist, bei der für jeden Aufruf auf das Dateisystem zugegriffen werden muss.

    Es macht nun mal keinen Sinn, Daten aus einem performanten System (in dem Fall das Datenbank-System) mit einem weniger performanten System (in dem Fall eine normale Datei) zu cachen, da man damit genau das Gegenteil erreicht.

    LG cookies
  8. @ggame: Ja, ich lass den Spruch auch immer ab, weil er so wichtig ist. Ich wollte damit nur sagen: Sobald deine Seite einige Hunderttausend Pageviews pro Tag hat, solltest du wirklich an einige Caching-Mechanismen denken. Wenn du aber nur eine kleine Seite mit fünftausend Seitenaufrufen pro Tag oder so hast, dann vergeudest du mit Caching wahrscheinlich deine Zeit. Und Zeit ist Geld.

    Ich verstehe aber nicht recht, was du gegen die Nutzung von APC hast. Ich meine, wenn du die Funktionsweise wissen willst, kein Problem: Das Objekt wird einfach im Arbeitsspeicher zwischengespeichert (wahrscheinlich in serialisiertem Format). Du fährst mit APC viel besser als mit irgendwas selbstgeschriebenem, was JSON in Flatfiles speichert...

    Aber abgesehen davon: Bevor wir an die Speicherung gehen, was genau willst du eigentlich cachen? Zum Beispiel cachen Template-Engines meistens den kompilierten PHP Code. Das ist auch eine Art von Caching. Könntest du etwas spezifischer werden, was für eine Art von Caching du meinst?

    @cookies: Das ist immer so ne Sache. Häufig genutzt Dateien wirst du wahrscheinlich auch im Arbeitsspeicher haben, weil das OS das optimiert. Besoders wenn du viel Arbeitsspeicher hast (und in nem Server hast du meisten 16 - 64 GB Arbeitsspeicher.) Also kann man nicht so ganz klar sagen, dass Flatfiles immer langsamer sind ;)

    @json: json_(en|de)code sind besonders bei größeren Objekten langsamer als PHPs eigenes (un)serialize. Daher würde ich eher dazu greifen. (Außer du willst die gecachten Daten auch per JS abfragen können, dann bietet sich JSON vielleicht an.) Die Idee mit dem PHP-Array ist auch interessant. So eins zu erstellen ist auch trivial über var_export.
  9. Autor dieses Themas

    g****e

    dann werd ich mich mit APC auch nochmal ein bissel beschäftigen

    das MySQL auch eine cache im ram generiert (meistens), weiß ich, ist aber nicht immer so. außerdem soll die datenbank ebenso modular sein, sodass auch sqlite, mssql, etc, was weiß ich nutzen, und bei denen weiß ich das nicht so recht, ob die das auch haben, hab ich noch nie gelesen.

    das heißt JSON ist bissel langsamer bei mehr, das ist nicht gut, ok, danke, das war eine wichtige info =)
    var_export kannte ich bis eben nicht, aber das ist echt genial! das macht das ganze wirklich einfacher, danke für den guten hinweis =) danke!

    damit wäre des wohl beantwortet, kann daher geschlossen werden =)
    danke nochmal!
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!