运行时配置

这些函数的行为受 php.ini 中的设置影响。

Yac 配置选项
名字 默认 可修改范围 更新日志
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(默认)、jsonigbinarymsgpack。 后三者需要扩展以相应支持编译。 igbinarymsgpack 等二进制序列化器通常比 php 更快, 产生的数据也更小。

yac.values_memory_size string

用于存放实际值的共享内存大小,默认为 64M。 Yac 以每段 4M 的方式分配这块区域, 因此该值必须是 4M 的倍数。 当区域写满时,最久未使用的条目会被踢出,为新条目腾出空间。