YAC est un cache de données utilisateur de mémoire partagée et sans verrouillage pour PHP.
Il peut être utilisé pour remplacer APC ou Memcached local.
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install
yac.enable = 1
yac.keys_memory_size = 4M ; 4M can get 30K key slots, 32M can get 100K key slots
yac.values_memory_size = 64M
yac.compress_threshold = -1
yac.enable_cli = 0 ; whether enable yac with cli, default 0
yac.serializer = php ; since yac 2.2.0 , specific seralizer yac used
could be json(--enable-json), msgpack(--enable-msgpack) or igbinary(--enable-igbinary)
YAC_VERSION
YAC_MAX_KEY_LEN = 48 ; if your key is longer than this, maybe you can use md5 result as the key
YAC_MAX_VALUE_RAW_LEN = 64M
YAC_MAX_VALUE_COMPRESSED_LEN = 1M
YAC_SERIALIZER_PHP = 0 ; since yac-2.2.0
YAC_SERIALIZER_JSON = 1 ; since yac-2.2.0
YAC_SERIALIZER_MSGPACK = 2 ; since yac-2.2.0
YAC_SERIALIZER_IGBINARY = 3 ; since yac-2.2.0
YAC_SERIALIZER ; serializer according to yac.serializer, default is YAC_SERIALIZER_PHP
Yac:: __construct ([string $ prefix = "" ])Constructeur de YAC, vous pouvez spécifier un préfixe qui sera utilisé pour appliquer à toutes les clés lorsque vous faites définir / get / supprimer
<?php
$ yac = new Yac ( " myproduct_ " );
?> Yac:: set ( $ key , $ value [, $ ttl = 0 ])
Yac:: set (array $ kvs [, $ ttl = 0 ])Stockez une valeur dans le cache YAC, les clés sont uniques de cache, donc stocker une deuxième valeur avec la même clé écrasera la valeur d'origine.
Renvoie vrai sur succès, renvoyez FALSE sur l'erreur (comme aucune mémoire, ne peut pas obtenir de CAS Écrire correctement)
<?php
$ yac = new Yac ();
$ yac -> set ( " foo " , " bar " );
$ yac -> set (
array (
" dummy " => " foo " ,
" dummy2 " => " foo " ,
)
);
?> En tant que YAC 2.1, le magasin peut échec si la compétition CAS échoue, vous devrez peut-être faire:
while (!( $ yac -> set ( " important " , " value " )));Si vous avez besoin que la valeur soit stockée correctement.
Yac::get(array|string $key[, &$cas = NULL])
Retrait une variable stockée à partir du cache. Si un tableau est passé, chaque élément est récupéré et retourné.
Renvoyer la valeur sur le succès, renvoyer false sur l'erreur (comme pas de mémoire, ne peut pas obtenir de Cas écrire correctement)
<?php
$ yac = new Yac ();
$ yac -> set ( " foo " , " bar " );
$ yac -> set (
array (
" dummy " => " foo " ,
" dummy2 " => " foo " ,
)
);
$ yac -> get ( " dummy " );
$ yac -> get ( array ( " dummy " , " dummy2 " ));
?> Yac::delete(array|string $keys[, $delay=0])
Supprime une variable stockée du cache. Si un retard est spécifié, la valeur sera supprimée après les secondes de retard.
Yac::flush()
Invalide immédiatement tous les éléments existants. Il ne libére pas de ressources, il marque tous les éléments comme invalides.
Yac::info(void)
Obtenez des informations sur le cache
<?php
. . . .
var_dump ( $ yac -> info ());
/* will return an array like :
array ( 11) {
[ " memory_size "]=> int(541065216)
[ "slots_memory_size" ] => int ( 4194304 )
[ "values_memory_size" ] => int ( 536870912 )
[ "segment_size" ] => int ( 4194304 )
[ "segment_num" ] => int ( 128 )
[ "miss" ] => int ( 0 )
[ "hits" ] => int ( 955 )
[ "fails" ] => int ( 0 )
[ "kicks" ] => int ( 0 )
[ "slots_size" ] => int ( 32768 )
[ "slots_used" ] => int ( 955 )
}
*/