这些函数的行为受 php.ini 中的设置影响。
| 名字 | 默认 | 可修改范围 | 更新日志 |
|---|---|---|---|
| yac.compress_threshold | -1 | INI_SYSTEM |
|
| yac.debug | 0 | INI_ALL |
|
| yac.enable | 1 | INI_SYSTEM |
|
| yac.enable_cli | 0 | INI_SYSTEM |
|
| yac.keys_memory_size | 4M | INI_SYSTEM |
|
| yac.serializer | php | INI_SYSTEM |
|
| yac.values_memory_size | 64M | INI_SYSTEM |
这是配置指令的简短说明。
yac.compress_threshold
int
序列化后大于该字节数的值会在存储前被压缩(当前使用 LZ4)。
设为 -1(默认值)则完全禁用压缩。
压缩大值可以节省共享内存,代价是存取时多消耗一些 CPU。
yac.debug
int
保留给调试用。截至 Yac 2.4.0,该配置项已注册但没有任何效果。
yac.enable
int
是否启用 Yac。如果被禁用,创建 Yac 实例会抛出异常。
yac.enable_cli
int
在 CLI SAPI 下运行时是否启用 Yac。
默认禁用,因为命令行脚本通常启动后立即结束,
创建共享内存段毫无意义。
yac.keys_memory_size
string
用于存放键和元信息的哈希槽位所占用的共享内存大小。
每个槽位是固定大小的结构,因此这个值决定了能同时跟踪多少条目。
默认为 4M。
Yac 将这块区域切分成若干段,每段大小为 4M,
因此该值必须是 4M 的倍数。
yac.serializer
string
存储前把任意 PHP 值转换成字节序列所用的序列化器。
可选值为 php(默认)、json、
igbinary 和 msgpack。
后三者需要扩展以相应支持编译。
igbinary 和 msgpack
等二进制序列化器通常比 php 更快,
产生的数据也更小。
yac.values_memory_size
string
用于存放实际值的共享内存大小,默认为 64M。
Yac 以每段 4M 的方式分配这块区域,
因此该值必须是 4M 的倍数。
当区域写满时,最久未使用的条目会被踢出,为新条目腾出空间。