hail / optimize
使用内存扩展来减少文件系统IO
v0.10.0
2021-08-05 11:17 UTC
README
使用内存扩展缓存
- 文件中的数据存储,减少文件系统IO
- 复杂操作后的数据
环境变量
- HAIL_OPTIMIZE_ADAPTER
- 自动(默认)
- 检查顺序:yac, apcu, wincache, redis
- yac
- yac 扩展必须已安装
- apcu
- apcu 扩展必须已安装
- wincache
- wincache 扩展必须已安装
- redis
- phpredis 扩展必须已安装
- HAIL_OPTIMIZE_REDIS 必须定义
- 内存
- 使用PHP数组保存数据
- 无
- 禁用
- 自动(默认)
- HAIL_OPTIMIZE_DELAY
- 检查缓存文件是否变化的时间间隔(秒)
- 0 表示每次获取数据时都检查
- 小于0 表示永不检查(不推荐)
- 如未定义,默认值为5
- HAIL_OPTIMIZE_REDIS
- redis配置
- unix:///var/run/redis/redis.sock?auth=password&select=0
- tcp://127.0.0.1:6379?auth=password&select=0
示例
use Hail\Optimize\OptimizeTrait; class Example { use OptimizeTrait; private string $folder; public function __construct(string $folder) { $this->folder = $folder; } public function dataReader(string $file): array { return unserialize(file_get_contents($file)); } public function get(string $name): array { $file = $this->folder . DIRECTORY_SEPARATOR . $name . '.json'; return $this->optimize()->load($file); } public function getSerializeData($name): array { $file = $this->folder . DIRECTORY_SEPARATOR . $name . '.data'; return $this->optimize()->load($file, [$this, 'dataReader']); } }