Zend_Cache Backends
Es gibt zwei Arten von Backends: Standard und erweiterte. Natürlich bieten erweiterte
Backends mehr Features.
Zend_Cache_Backend_File
Dieses (erweiterte) Backend speichert Cache Datensätze in Dateien (in einem gewählten
Verzeichnis).
Mögliche Optionen sind :
File Backend Optionen
Option
Daten Typ
Standardwert
Beschreibung
cache_dir
String
'/tmp/'
Verzeichnis, in dem die Cache Dateien gespeichert werden
file_locking
Boolean
TRUE
Ein- oder Ausschalten von file_locking: kann die Beschädigung des
Caches unter schlechten Bedingungen verhindern, aber es hilft nicht bei
Multithreaded Webservern oder bei NFS
Filesystemen...
read_control
Boolean
TRUE
Ein- oder Ausschalten von read_control: eingeschaltet wird ein
Kontrollschlüssel im Cache File inkludiert und dieser Schlüssel wird mit
dem Schlüssel verglichen, der nach dem Lesen berechnet wird.
read_control_type
String
'crc32'
Typ der Schreibkontrolle (nur wenn read_control eingeschaltet ist).
Mögliche Werte sind : 'md5' (bestes, aber am Langsamsten), 'crc32'
(etwas weniger sicher, aber schneller, beste Wahl), 'adler32' (neue
Wahl, schneller als crc32), 'strlen' um nur die Länge zu testen
(schnellstes).
hashed_directory_level
Integer
0
Level der gehashten Verzeichnis Struktur: 0 heißt "keine gehashte
Verzeichnis Strutur, 1 heißt "ein Level von Verzeichnissen", 2 heißt
"zwei Levels"... Diese Option kann den Cache nur dann schneller machen,
wenn viele Tausende Cache Dateien verwendet werden. Nur spezielle
Messungen können helfen, den perfekten Wert zu finden. Möglicherweise
ist 1 oder 2 ein guter Anfang.
hashed_directory_umask
Integer
0700
Umask für die gehashte Verzeichnis Struktur
file_name_prefix
String
'zend_cache'
Präfix für Cache Dateien; man muss mit dieser Option sehr vorsichtig
umgehen, weil ein zu generischer Wert in einem System Cache
Verzeichnis (wie /tmp) kann beim Löschen des
Caches zu großen Problemen führen.
cache_file_umask
Integer
0700
umask nach Cache Dateien
metatadatas_array_max_size
Integer
100
Interne maximale Größe für das Metadaten Array (dieser Wert sollte
nicht geändert werden außer man weiß was man macht)
Zend_Cache_Backend_Sqlite
Dieses (erweiterte) Backend speichert die Cache Datensätze in einer SQLite Datenbank.
Mögliche Optionen sind :
Sqlite Backend Optionen
Option
Daten Typ
Standardwert
Beschreibung
cache_db_complete_path (mandatory)
String
NULL
Der komplette Pfad (inklusive Dateiname) der SQLite Datenbank
automatic_vacuum_factor
Integer
10
Deaktiviert oder stellt den automatischen Vakuumprozess ein.
Der automatische Vakuumprozess defragmentiert die Datenbankdatei (und
verkleinert sie) wenn clean() oder
delete() aufgerufen wird: 0 bedeutet kein
automatisches Vakuum; 1 bedeutet systematisches Vakuum (wenn die
delete() or clean()
Methoden aufgerufen werden; x (integer) > 1 => automatisches Vakuum
zufällig einmal pro x clean() oder
delete() Aufrufe.
Zend_Cache_Backend_Memcached
Dieses (erweiterte) Backend speichert Cache Datensätze in einem Memcached Server. memcached ist ein hoch-performantes,
verteiltes Speicher Objekt Caching System. Um dieses Backend zu benutzen, wird ein
Memcached Dämon benötigt und die
Memcached PECL Erweiterung.
Vorsicht: mit diesem Backend werden zur Zeit "Marker" nicht unterstützt genauso wie das
"doNotTestCacheValidity=true" Argument.
Mögliche Optionen sind :
Memcached Backend Optionen
Option
Daten Typ
Standardwert
Beschreibung
servers
Array
array(array('host' => 'localhost','port' => 11211,
'persistent' => true, 'weight' => 1, 'timeout' => 5,
'retry_interval' => 15, 'status' => true,
'failure_callback' => '' ))
Ein Array von Memcached Servern; jeder Memcached Server wird durch ein
assoziatives Array beschrieben : 'host' => (string) : Der Name des
Memcached Servers, 'port' => (int) : Der Port des Memcached Servers,
'persistent' => (bool) : Persistente Verbindungen für diesen Memcached
Server verwenden oder nicht 'weight' => (int) : Das Gewicht des
Memcached Servers, 'timeout' => (int) : Das Timeout des Memcached
Servers, 'retry_interval' => (int) : Das Wiederholungsintervall des
Memcached Servers, 'status' => (bool) : Der Status des Memcached
Servers, 'failure_callback' => (callback) : Der failure_callback des
Memcached Servers
compression
Boolean
FALSE
TRUE wenn on-the-fly Kompression verwendet werden
soll
compatibility
Boolean
FALSE
TRUE wenn man den Compatibility Modus mit alten
Memcache Servern oder Erweiterungen verwenden will
Zend_Cache_Backend_Apc
Dieses (erweiterte) Backend speichert Cache Datensätze im Shared Memory durch die
APC (Alternativer
PHP Cache) Erweiterung (welche natürlich für die Verwendung dieses
Backends benötigt wird).
Vorsicht: mit diesem Backend werden "Marker" zur Zeit nicht unterstützt genauso wie das
"doNotTestCacheValidity=true" Argument.
Es gibt keine Optionen für dieses Backend.
Zend_Cache_Backend_Xcache
Dieses Backend speichert Cache Einträge im Shared Memory durch die
XCache Erweiterung (welche natürlich
benötigt wird, damit dieses Backend verwendet werden kann).
Achtung: Bei diesem Backend werden "tags" aktuell nicht unterstützt sowie das
"doNotTestCacheValidity=true" Argument.
Mögliche Optionen sind:
Xcache backend options
Option
Daten Typ
Standardwert
Beschreibung
user
String
NULL
xcache.admin.user, notwendig für die
clean() Methode
password
String
NULL
xcache.admin.pass (in offener Form, nicht
MD5), notwendig für die
clean() Methode
Zend_Cache_Backend_ZendPlatform
Dieses Backend verwendet die Content Caching API des
Zend Platform Produktes.
Natürlich muss man die Zend Platform installiert haben, um dieses Backend verwenden zu
können.
Dieses Backend unterstützt Tags, aber nicht den
CLEANING_MODE_NOT_MATCHING_TAG Löschmodus.
Bei Definition dieses Backends muß ein Trennzeichen -- '-', '.', ' ', oder '_'
-- zwischen den Wörtern 'Zend' und 'Platform' definiert sein wenn die
Zend_Cache::factory() Methode verwendet wird:
Es gibt keine Optionen für dieses Backend.
Zend_Cache_Backend_TwoLevels
Dieses (erweiterte) Backend ist ein Hybrides. Es speichert Cache Einträge in zwei
anderen Backends: Ein schnelles (aber limitiertes) wie Apc, Memcache... und ein
"langsames" wie File, Sqlite...
Dieses Backend verwendet den Priority Parameter (der auf Frontend Level angegeben wird
wenn ein Eintrag gespeichert wird) und den verbleibenden Platz im schnellen Backend um
die Verwendung dieser zwei Backends zu optimieren.
Dieses Backend sollte mit Verwendung eines Word Separators -- '-', '.', ' ', oder '_' --
zwischen den Wörtern 'Two' und 'Levels' spezifiziert werden wenn die
Zend_Cache::factory() Methode verwendet wird:
Vorhandene Optionen sind:
TwoLevels Backend Optionen
Option
Datentyp
Standardwert
Beschreibung
slow_backend
String
File
Der "langsame" Backendname
fast_backend
String
Apc
Der "schnelle" Backendname
slow_backend_options
Array
array()
Die "langsamen" Backendoptionen
fast_backend_options
Array
array()
Die "schnellen" Backendoptionen
slow_backend_custom_naming
Boolean
FALSE
Wenn TRUE, wird das slow_backend Argument als
kompletter Klassenname verwendet; wenn FALSE,
wird das frontend Argument als Ende des
"Zend_Cache_Backend_[...]" Klassennamens
verwendet
fast_backend_custom_naming
Boolean
FALSE
Wenn TRUE, wird das fast_backend Argument als
kompletter Klassenname verwendet; wenn false,
wird das frontend Argument als Ende des
"Zend_Cache_Backend_[...]" Klassennamens
verwendet
slow_backend_autoload
Boolean
FALSE
Wenn TRUE, wird kein require_once für das
langsame Backend verwendet (nur für eigene Backends nützlich)
fast_backend_autoload
Boolean
FALSE
Wenn TRUE, wird kein require_once für das
schnelle Backend verwendet (nur für eigene Backends nützlich)
auto_refresh_fast_cache
Boolean
TRUE
Wenn TRUE, wird der schnelle Cache automatisch
refresht wenn ein Cache Eintrag getroffen wird
stats_update_factor
Integer
10
Ausschalten / Feintunen der Berechnung des Füll-Prozentsatzes des
schnellen Backends (wenn ein Eintrag in den Cache gespeichert wird,
die Berechnung des Füll-Prozentsatzes des schnellen Backends zufällig
1 mal bei x Cache Schreibvorgängen)
Zend_Cache_Backend_ZendServer_Disk und Zend_Cache_Backend_ZendServer_ShMem
Diese Backends speichern Cacheeinträge indem Sie die Caching Funktionalitäten von Zend
Server verwenden.
Achtung: mit diesen Backends werden für den Moment "Tags" nicht unterstützt, wegen dem
"doNotTestCacheValidity=true" Argument.
Diese Backends arbeiten nur in einer Zend Server Umgebung für Seiten die über
HTTP oder HTTPS angefragt wurden und nicht für
Kommandozeilen Ausführung.
Dieses Backend muß durch Verwendung des customBackendNaming
Parameter mit TRUE spezifiziert werden wenn die Methode
Zend_Cache::factory() verwendet wird:
Es gibt keine Optionen für diese Backends.