Yac is a shared memory user data cache for PHP
it can be used to replace APC or local memcached.
- PHP 5.2 +
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install
- Cache key cannot be longer than 48 (YAC_MAX_KEY_LEN) bytes
- Cache Value cannot be longer than 64M (YAC_MAX_VALUE_RAW_LEN) bytes
- Cache Value after compressed cannot be longer than 1M (YAC_MAX_VALUE_COMPRESSED_LEN) bytes
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_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::__construct([string $prefix = ""])
Constructor of Yac, you can specify a prefix which will used to prepend to any keys when doing set/get/delete
<?php
$yac = new Yac("myproduct_");
?>
Yac::set($key, $value[, $ttl])
Yac::set(array $kvs[, $ttl])
Store a value into Yac cache, keys are cache-unique, so storing a second value with the same key will overwrite the original value.
<?php
$yac = new Yac();
$yac->set("foo", "bar");
$yac->set(
array(
"dummy" => "foo",
"dummy2" => "foo",
)
);
?>
Yac::get(array|string $key)
Fetches a stored variable from the cache. If an array is passed then each element is fetched and returned.
<?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])
Removes a stored variable from the cache. If delay is specified, then the value will be deleted after $delay seconds.
Yac::flush()
Immediately invalidates all existing items. it doesn't actually free any resources, it only marks all the items as invalid.
Yac::info(void)
Get cache info
<?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)
}
*/
- Windows support
- Test in real life applications