1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- English Revision: 1828626 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <manualpage metafile="socache.xml.meta">
27 <title>Le cache des objets partagés du serveur HTTP Apache</title>
30 <p>Le cache des objets partagés est un concept de partage de données
31 de base entre tous les processus d'un serveur, sans se préoccuper du
32 <a href="mpm.html">modèle de threads et de processus</a>. On
33 l'utilise lorsque les avantages apportés par le partage de données
34 entre processus contrebalance la perte de performances consécutive à
35 la communication interprocessus.</p>
38 <section id="providers">
39 <title>Fournisseurs du cache d'objets partagés</title>
40 <p>Le cache d'objets partagés en tant que tel est une abstraction.
41 Il est implémenté par quatre modules différents. Pour pouvoir
42 utiliser le cache, un ou plusieurs de ces modules doivent être
43 présents et configurés.</p>
44 <p>Le seul élément de configuration consiste à définir le
45 fournisseur de cache à utiliser. Ceci est de la responsabilité des
46 modules qui utilisent le cache, et pour cela, ils activent la
47 sélection via des directives telles que <directive
48 module="mod_cache_socache">CacheSocache</directive>, <directive
49 module="mod_authn_socache">AuthnCacheSOCache</directive>, <directive
50 module="mod_ssl">SSLSessionCache</directive>, et <directive
51 module="mod_ssl">SSLStaplingCache</directive>.</p>
52 <p>Les fournisseurs actuellement disponibles sont :</p>
54 <dt>"dbm" (<module>mod_socache_dbm</module>)</dt>
55 <dd>Celui-ci utilise un fichier de hashage DBM. Le choix de la
56 DBM sous-jacente peut être configurable si la version
57 d'APR installée supporte de multiples implémentations de DBM.</dd>
58 <dt>"dc" (<module>mod_socache_dc</module>)</dt>
59 <dd>Celui-ci utilise les bibliothèques de mise en cache de sessions
60 distribuées <a href="http://distcache.sourceforge.net/">distcache</a>.</dd>
61 <dt>"memcache" (<module>mod_socache_memcache</module>)</dt>
62 <dd>Celui-ci utilise le système à hautes performances de mise en
63 cache d'objets de mémoire distribuée <a
64 href="http://memcached.org/">memcached</a>.</dd>
65 <dt>"redis" (<module>mod_socache_redis</module>)</dt>
66 <dd>Celui-ci utilise le système de mise en cache d'objets de mémoire
67 distribuée à hautes performances <a href="http://redis.io/">Redis</a>.</dd>
68 <dt>"shmcb" (<module>mod_socache_shmcb</module>)</dt>
69 <dd>Celui-ci utilise un tampon cyclique à hautes performances au
70 sein d'un segment de mémoire partagée.</dd>
73 <p>L'API fournit les fonctions suivantes :</p>
76 <dt>const char *create(ap_socache_instance_t **instance, const char *arg,
77 apr_pool_t *tmp, apr_pool_t *p);</dt>
78 <dd>Cette fonction permet de créer un cache de session basé sur
79 la chaîne de configuration spécifiée. Le pointeur d'instance
80 renvoyé dans le paramètre instance sera passé comme premier
81 argument des invocations subséquentes.</dd>
83 <dt>apr_status_t init(ap_socache_instance_t *instance, const char *cname,
84 const struct ap_socache_hints *hints,
85 server_rec *s, apr_pool_t *pool)</dt>
86 <dd>Cette fonction permet d'initialiser le cache. L'argument cname
87 doit avoir une longueur maximale de 16 caractères et permet
88 d'identifier de manière unique l'utilisateur du cache au sein du
89 serveur ; il est recommandé d'utiliser le nom du module, par
90 exemple "mod_ssl-sess". Comme cette chaîne peut être utilisée au
91 sein d'un système de fichiers, il est conseillé de n'utiliser que
92 des caractères alphanumériques [a-z0-9_-]. Si l'argument hints
93 n'est pas égal à NULL, il fournit un ensemble d'indications au
94 fournisseur. La valeur retournée est le code d'erreur APR.</dd>
96 <dt>void destroy(ap_socache_instance_t *instance, server_rec *s)</dt>
97 <dd>Cette fonction permet de détruire l'instance de cache
100 <dt>apr_status_t store(ap_socache_instance_t *instance, server_rec *s,
101 const unsigned char *id, unsigned int idlen,
103 unsigned char *data, unsigned int datalen,
104 apr_pool_t *pool)</dt>
105 <dd>Cette fonction permet de stocker un objet dans une instance de
108 <dt>apr_status_t retrieve(ap_socache_instance_t *instance, server_rec *s,
109 const unsigned char *id, unsigned int idlen,
110 unsigned char *data, unsigned int *datalen,
111 apr_pool_t *pool)</dt>
112 <dd>Cette fonction permet d'extraire un objet du cache.</dd>
114 <dt>apr_status_t remove(ap_socache_instance_t *instance, server_rec *s,
115 const unsigned char *id, unsigned int idlen,
116 apr_pool_t *pool)</dt>
117 <dd>Supprime un objet du cache.</dd>
119 <dt>void status(ap_socache_instance_t *instance, request_rec *r, int flags)</dt>
120 <dd>Descend le détail d'une instance de cache à destination de mod_status.</dd>
122 <dt>apr_status_t iterate(ap_socache_instance_t *instance, server_rec *s,
123 void *userctx, ap_socache_iterator_t *iterator,
124 apr_pool_t *pool)</dt>
125 <dd>Descend tous les objets en cache à destination d'une fonction <code>iterator callback</code>.</dd>