Caching in PHP - Status Quo

2,272 views
2,154 views

Published on

Modern Caching in PHP

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,272
On SlideShare
0
From Embeds
0
Number of Embeds
245
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Caching in PHP - Status Quo

  1. 1. Caching in PHP – Status Quo
  2. 2. Was ist ein Cache? Ein Cache ist eine Ablage für Daten die mehrfach und möglichst schnell ausgelesen werden sollen.
  3. 3. Wer nutzt Caches? Frage: Wer nutzt Caches? Antwort: Wir alle! Direkt und indirekt.
  4. 4. Unser persönlicher Cache – Das Gehirn Kurzzeitgedächtnis (Verfallszeit ca. 24 Stunden) Ultrakurzzeitgedächtnis (Verfallszeit 10 – 15 Sekunden) Langzeitgedächtnis (Theoretisch unbegrenzt)
  5. 5. Was ist ein Cache in der EDV? Cache bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer-Speicher realisiert, die Kopien zwischenspeichern. Sie können als Hardware- oder Softwarestruktur ausgebildet sein. Quelle: Wikipedia
  6. 6. Ein wenig Theorie gefällig? Cache Hit: Ein Element wurde im Cache gefunden. Cache Miss: Ein Element wurde nicht im Cache gefunden. Hit Rate: Cache Hits / Anzahl der Anfragen Miss Rate: 1 – Hit Rate
  7. 7. Vorteile und Nachteile <ul><li>Bei hoher Hit Rate verbesserte Performance durch Einsparung von CPU Zeit für die Neuberechnung und Einsparung von Arbeitsspeicher.
  8. 8. Mehr Last auf Servern möglich </li></ul><ul><li>Bei schlechter Hit Rate Verschlechterung der Performance.
  9. 9. Cache muss aktualisiert oder sogar neu aufgebaut werden
  10. 10. Zusätzliche Steuerlogiken müssen in die Anwendung übernommen werden. </li></ul>
  11. 11. Wo werden Caches eingesetzt?
  12. 12. Ein einfaches PHP Beispiel
  13. 13. Betrachtung des Code Beispiels <ul><li>Einfach aufgebaut
  14. 14. Schnell implementiert </li></ul><ul><li>Nicht wiederverwendbar
  15. 15. Unflexibel
  16. 16. Unstrukturiert </li></ul>
  17. 17. Moderne Cache Architektur <ul><li>Aufteilung Programmlogik </li><ul><li>Frontend – Was wird wie lange gechached?
  18. 18. Backend – Wie wird etwas persistiert </li></ul><li>Konfigurierbar (z.B. XML Datei)
  19. 19. Partielles Löschen möglich </li><ul><li>Einführung eines Tag-Systems
  20. 20. Einführung einer individuellen Cachezeit für einzelne Elemente </li></ul></ul>
  21. 21. Aufbau der Zend_Cache Komponente
  22. 22. Gleiches Beispiel mit Zend_Cache
  23. 23. Gleiches Konzept in TYPO3 4.3
  24. 24. PHP Cache-Implementierung <ul><li>Zend Framework http://framework.zend.com
  25. 25. FLOW3 http://flow3.typo3.org (Backport ist in TYPO3 4.3 enthalten)
  26. 26. eZ Components http://www.ezcomponents.org
  27. 27. CodeIgniter http://codeigniter.com (Output Cache, DB Cache)
  28. 28. Symfony http://www.symfony-project.org (Einzelne Cache Klassen)
  29. 29. CakePHP http://cakephp.org
  30. 30. ZOOP http://zoopframework.com (Trennung über „Driver“ Klassen)
  31. 31. Prado http://www.pradosoft.com (Einzelne Cache Klassen)
  32. 32. Yii http://www.yiiframework.com (Einzelne Cache Klassen) </li></ul>
  33. 33. Danke! Kontakt : [email_address] http://blog.muench-worms.de http://twitter.com/cmuench https://www.xing.com/profile/Christian_Muench7

×