<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.basic.php.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'book.yac.php',
    1 => 'Yac',
    2 => 'Yac',
  ),
  'up' => 
  array (
    0 => 'refs.basic.php.php',
    1 => 'Extensiones que afectan el comportamiento de PHP',
  ),
  'prev' => 
  array (
    0 => 'function.xhprof-sample-enable.php',
    1 => 'xhprof_sample_enable',
  ),
  'next' => 
  array (
    0 => 'yac.setup.php',
    1 => 'Instalaci&oacute;n/Configuraci&oacute;n',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/yac/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.yac.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.yac" class="book">
 
 <h1 class="title">Yac</h1>
 

 <div id="intro.yac" class="preface">
  <h1 class="title">Introducción</h1>
  <p class="simpara">
   Yac (Yet Another Cache) es una caché de datos de usuario en memoria
   compartida y sin bloqueos, que puede utilizarse para reemplazar a APC
   o a un memcached local.
  </p>
  <p class="simpara">
   Yac almacena los datos en memoria compartida, lo que los hace visibles
   para todos los procesos de trabajo de PHP de la misma máquina sin
   ninguna comunicación entre procesos. En lugar de bloqueos, Yac se basa
   en actualizaciones atómicas de las ranuras junto con unos pocos sondeos
   de colisión, de modo que un fallo de caché nunca bloquea una petición y
   una escritura concurrente puede provocar, en el peor de los casos, un
   almacenamiento fallido o una lectura perdida que quien la invoca puede
   simplemente reintentar.
  </p>
  <p class="simpara">
   Al no haber bloqueos ni comunicación entre procesos en la ruta de
   acceso, una lectura es esencialmente una búsqueda hash en memoria
   compartida. Como resultado, Yac es extremadamente rápida, con una
   latencia de lectura del orden de microsegundos, y su rendimiento puede
   escalar con el número de procesos de trabajo mientras las escrituras se
   repartan entre distintas claves; véanse los
   <a href="https://github.com/laruence/yac/blob/master/README.md#benchmarks" class="link external">&raquo;&nbsp;tests de rendimiento</a>.
  </p>
  <p class="simpara">
   Dado que Yac sacrifica garantías de corrección a cambio de velocidad y
   rendimiento, resulta más adecuada para datos que son costosos de
   producir pero fáciles de recrear: fragmentos de página, instantáneas de
   configuración, respuestas pequeñas de servicios y otras cachés locales.
   No debería utilizarse como almacén de referencia para datos
   irremplazables.
  </p>
  <p class="simpara">
   A partir de yac 2.4.0, los valores escalares pequeños —
   <strong><code><a href="reserved.constants.php#constant.null">NULL</a></code></strong>, booleanos, la mayoría de los enteros (los que
   caben en 60 bits con signo en compilaciones de 64 bits), cadenas de hasta
   7 bytes y arrays vacíos — se almacenan directamente dentro de la ranura
   hash en lugar de en un bloque de valor separado («valores
   incrustados»), lo que elimina la reserva de memoria del valor y la
   copia del bloque en cada acceso, mejorando significativamente el
   rendimiento al tiempo que reduce el uso de memoria. La versión 2.4.0
   también cambió el motor de compresión de FastLZ a LZ4, haciendo que las
   lecturas comprimidas sean varias veces más rápidas.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="simpara">
    La memoria compartida solo es visible dentro de una misma máquina.
    Para compartir una caché entre varios servidores, se debe utilizar en
    su lugar una caché en red como Memcached o Redis.
   </p>
  </p></blockquote>
 </div>

 






 







 








 
 







<ul class="chunklist chunklist_book"><li><a href="yac.setup.php">Instalaci&oacute;n/Configuraci&oacute;n</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="yac.requirements.php">Requisitos</a></li><li><a href="yac.installation.php">Instalaci&oacute;n</a></li><li><a href="yac.configuration.php">Configuraci&oacute;n en tiempo de ejecuci&oacute;n</a></li><li><a href="yac.resources.php">Tipos de recursos</a></li></ul></li><li><a href="yac.memory-management.php">Gesti&oacute;n de la memoria</a></li><li><a href="yac.constants.php">Constantes predefinidas</a></li><li><a href="class.yac.php">Yac</a> — La clase Yac<ul class="chunklist chunklist_book chunklist_children"><li><a href="yac.add.php">Yac::add</a> — Almacena un valor sin sobrescribir uno existente</li><li><a href="yac.construct.php">Yac::__construct</a> — Constructor</li><li><a href="yac.delete.php">Yac::delete</a> — Elimina elementos de la cach&eacute;</li><li><a href="yac.dump.php">Yac::dump</a> — Vuelca las entradas de la cach&eacute; para su inspecci&oacute;n</li><li><a href="yac.flush.php">Yac::flush</a> — Vac&iacute;a la cach&eacute;</li><li><a href="yac.get.php">Yac::get</a> — Recupera valores de la cach&eacute;</li><li><a href="yac.getter.php">Yac::__get</a> — Recupera un valor usando la sintaxis de propiedades</li><li><a href="yac.info.php">Yac::info</a> — Estado del cach&eacute;</li><li><a href="yac.set.php">Yac::set</a> — Almacena un valor en la cach&eacute;</li><li><a href="yac.setter.php">Yac::__set</a> — Almacena un valor utilizando la sintaxis de propiedades</li></ul></li></ul></div><?php manual_footer($setup); ?>