YAC เป็นแคชข้อมูลผู้ใช้หน่วยความจำที่ใช้ร่วมกันและล็อคสำหรับ PHP
มันสามารถใช้เพื่อแทนที่ APC หรือ memcached ท้องถิ่น
$/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 = "" ])ตัวสร้างของ YAC คุณสามารถระบุคำนำหน้าซึ่งจะใช้เพื่อเติมเต็มให้กับคีย์ใด ๆ เมื่อทำการตั้งค่า/รับ/ลบ
<?php
$ yac = new Yac ( " myproduct_ " );
?> Yac:: set ( $ key , $ value [, $ ttl = 0 ])
Yac:: set (array $ kvs [, $ ttl = 0 ])จัดเก็บค่าลงในแคช YAC คีย์เป็นแคชแบบไม่ใช้ดังนั้นการจัดเก็บค่าที่สองด้วยคีย์เดียวกันจะเขียนทับค่าดั้งเดิม
ส่งคืนจริงเมื่อประสบความสำเร็จส่งคืนข้อผิดพลาดที่ผิดพลาด (เช่นไม่มีหน่วยความจำไม่สามารถรับ CAS เขียนถูกต้องได้)
<?php
$ yac = new Yac ();
$ yac -> set ( " foo " , " bar " );
$ yac -> set (
array (
" dummy " => " foo " ,
" dummy2 " => " foo " ,
)
);
?> ในฐานะที่เป็น YAC 2.1 ร้านค้าอาจล้มเหลวหากการแข่งขัน CAS ล้มเหลวคุณอาจต้องทำ:
while (!( $ yac -> set ( " important " , " value " )));หากคุณต้องการค่าที่จะเก็บไว้อย่างถูกต้อง
Yac::get(array|string $key[, &$cas = NULL])
ดึงตัวแปรที่เก็บไว้จากแคช หากผ่านอาร์เรย์แต่ละองค์ประกอบจะถูกดึงและส่งคืน
ส่งคืนค่าเมื่อประสบความสำเร็จส่งคืนความผิดพลาดที่ผิดพลาด (เช่นไม่มีหน่วยความจำไม่สามารถรับ CAS เขียนถูกต้องได้)
<?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])
ลบตัวแปรที่เก็บไว้ออกจากแคช หากระบุความล่าช้าค่าจะถูกลบหลังจาก $ delay วินาที
Yac::flush()
ทำให้รายการที่มีอยู่ทั้งหมดเป็นโมฆะทันที จริง ๆ แล้วมันไม่ได้เป็นอิสระจากทรัพยากรใด ๆ มันทำเครื่องหมายเฉพาะรายการทั้งหมดที่ไม่ถูกต้อง
Yac::info(void)
รับข้อมูลแคช
<?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 )
}
*/