Heim > Backend-Entwicklung > PHP-Tutorial > PHP Shared Cache Yac ersetzt APCU Memcache!

PHP Shared Cache Yac ersetzt APCU Memcache!

藏色散人
Freigeben: 2023-04-11 10:46:01
nach vorne
3098 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP+YAC. Es geht hauptsächlich darum, wie man APCU-Memcache durch Yac ersetzt. Ich hoffe, dass es für alle hilfreich ist.

Yac-Cache

Yac ist ein gemeinsam genutzter und sperrenfreier Speicher-Benutzerdaten-Cache für PHP. Es kann verwendet werden, um APC oder lokales Memcached zu ersetzen. Die Produkte von Niao Ge müssen von hoher Qualität sein Festlegen des gleichen Schlüssels Wahrscheinlichkeit

Yac Bei Verwendung von partiellem CRC sollten Sie den Cache-Inhalt besser neu anordnen, um die wichtigsten (variablen) Bytes am Kopf oder Ende zu platzieren

Einschränkungen

Der Cache-Schlüssel darf nicht größer als 48 (YAC_MAX_KEY_LEN) Bytes sein.

  • Der Cache-Inhalt darf nicht größer als 64 MB (YAC_MAX_VALUE_RAW_LEN) Bytes sein

  • ini-Konfiguration
  • $/path/to/phpize
    $./configure --with-php-config=/path/to/php-config
    $make && make install
    Nach dem Login kopieren

    Konstanten
  • 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 ; 是否使用cli启用yac,默认为0
    yac.serializer = php ; yac2.2.0以来,yac使用的特定seralizer json(-- enable-json) 、msgpack(-- enable-msgpack) 或igbinary(-- enable-igbinary)
    Nach dem Login kopieren

Achten Sie auf die Probleme, die unter cli auftreten werden

Wenn cli mit ini konfiguriert werden muss, um cli-enable
    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
    Nach dem Login kopieren
  • Methode

  • Yac::__construct zu aktivieren

  • <?php  
    use Doraemon\pockets\datebase\ShareCache;
    //实例化缓存封装类
    $cache  = new ShareCache(&#39;test&#39;);
    //设置缓存
    $cache->set([1,2,3,5,6]);
    //获取缓存
    $a = $cache->get();
    
    
    //备注 1.由于yac的缓存是共享的,所以在多个项目中使用时,需要注意key的唯一性,否则会出现缓存覆盖的情况
    //备注 2.由于cli在执行后会自动退出,所以在cli中使用时,需要注意缓存的有效期,当再次执行时候换存是拿不到的
    //例如
    
    //例
    //step 1
    <?php
    use Doraemon\pockets\datebase\ShareCache;
    $cache  = new ShareCache(&#39;test&#39;);
    //设置缓存
    $cache->set([1,2,3,5,6]);
    //php step1.php //执行后会自动退出,缓存失效
    
    <?php
    use Doraemon\pockets\datebase\ShareCache; 
    //step 2
    $cache  = new ShareCache(&#39;test&#39;);
    //设置缓存
    $arr = $cache->get();
    var_dump($arr);// 空
    //php step2.php //执行事后上一个进程已经退出,所以缓存失效
    Nach dem Login kopieren
  • Yacs Konstruktor, Sie können ein Präfix angeben. Dieses Präfix wird verwendet, um jedem Schlüssel voranzustellen, wenn Set/Get/Delete ausgeführt wird.

    Yac::__construct([string $prefix = ""])
    Nach dem Login kopieren

  • Yac::set

<?php
   $yac = new Yac("myproduct_");
?>
Nach dem Login kopieren
speichert einen Wert im Yac-Cache, der Schlüssel ist Cache eindeutig, daher denselben Schlüssel verwenden. Durch das Speichern des zweiten Werts wird der ursprüngliche Wert überschrieben.

Bei Erfolg true zurückgeben, bei Fehler false (wenn kein Speicher vorhanden ist, kann das Cas-Schreibrecht nicht abgerufen werden)

   Yac::set($key, $value[, $ttl = 0])
   Yac::set(array $kvs[, $ttl = 0])
Nach dem Login kopieren

Hinweis:

Wie bei Yac 2.1 kann es sein, dass der Cas-Wettbewerb fehlschlägt um die folgenden Operationen auszuführen:

<?php
$yac = new Yac();
$yac->set("foo", "bar");
$yac->set(
    array(
        "dummy" => "foo",
        "dummy2" => "foo",
        )
    );
?>
Nach dem Login kopieren

Yac::get

while (!($yac->set("important", "value")));
Nach dem Login kopieren
Ruft die gespeicherte Variable aus dem Cache ab. Wenn ein Array übergeben wird, wird jedes Element abgerufen und zurückgegeben. Gibt bei Erfolg einen Wert zurück, bei Fehler false
 Yac::get(array|string $key[, &$cas = NULL])
Nach dem Login kopieren

Yac::delete

<?php
$yac = new Yac();
$yac->set("foo", "bar");
$yac->set(
    array(
        "dummy" => "foo",
        "dummy2" => "foo",
        )
    );
$yac->get("dummy");
$yac->get(array("dummy", "dummy2"));
?>
Nach dem Login kopieren

Löscht die gespeicherte Variable aus dem Cache. Wenn eine Verzögerung angegeben ist, wird der Wert nach $delay Sekunden gelöscht.

Yac::flush

Yac::delete(array|string $keys[, $delay=0])
Nach dem Login kopieren

Alle vorhandenen Elemente sofort ungültig machen. Dabei werden keine Ressourcen freigegeben, sondern lediglich alle Elemente als ungültig markiert.

Yac::info

Yac::flush()
Nach dem Login kopieren
Cache-Informationen abrufen
Yac::info(void)
Nach dem Login kopieren
<?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)
  }
  */
Nach dem Login kopieren

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP Shared Cache Yac ersetzt APCU Memcache!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage