Yac(Yet Another Cache)是一种高性能的用户数据缓存系统,它采用无锁设计和共享内存机制,提供了一个替代方案,用以取代PHP的本地内存缓存APC。这种缓存机制旨在提高数据存取速度,优化应用程序的性能。
一、运行时配置
以下是Yac配置指令的简短说明:
- yac.compress_threshold int
- yac.debug int
- yac.enable int
- yac.enable_cli int
- yac.keys_memory_size string
- yac.serializer string
- yac.values_memory_size string
二、预定义常量
下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用:
- YAC_VERSION (string);
- YAC_MAX_KEY_LEN (int):密钥的最大长度,为 48 字节;
- YAC_MAX_VALUE_RAW_LEN (int);
- YAC_MAX_RAW_COMPRESSED_LEN (int);
- YAC_SERIALIZER_PHP (int):使用 php 序列化作为序列化器;
- YAC_SERIALIZER_JSON (int):使用 json 作为序列化器(要求 –enable-json);
- YAC_SERIALIZER_IGBINARY (int):将 igbinary 用作序列化器(require –enable-igbinary);
- YAC_SERIALIZER_MSGPACK (int):使用 msgpack 作为序列化器(require –enable-msgpack);
- YAC_SERIALIZER (string):yac 使用哪个序列化器。
三、Yac类
class Yac { /* 属性 */ protected $_prefix; /* 方法 */ public __construct(string $prefix = "") public add(string $keys, mixed $value, int $ttl = 0): bool public add(array $key_vals): bool public delete(string|array $keys, int $ttl = ?): bool public dump(int $$num): mixed public flush(): bool public get(string|array $key, int &$cas = null): mixed public __get(string $key): mixed public info(): array public set(string $keys, mixed $value, int $ttl = 0): bool public add(array $key_vals): bool public __set(string $keys, mixed $value): mixed }
四、Yac函数
- Yac::add – 存储到缓存中;
- Yac::__construct – 构造函数;
- Yac::delete – 从缓存中删除项目;
- Yac::dump – 删除缓存;
- Yac::flush – 清除缓存;
- Yac::get – 从缓存中读取值;
- Yac::__get – 获取器;
- Yac::info – 缓存状态;
- Yac::set – 存储到缓存;
- Yac::__set – 设置器。