Skip to content

fastdlabs/cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastD Cache

高性能 PHP 缓存库,基于 Symfony Cache 组件,专为 FastD 框架设计。

Build Status Scrutinizer Code Quality Scrutinizer Code Coverage Latest Stable Version PHP Version Require License

文档指南 | 问题反馈

特性

  • 多层缓存架构(缓存池 + HTTP 中间件)
  • 高性能设计(连接池、适配器复用)
  • 灵活配置(支持文件、Redis、Memcached)
  • 开箱即用(简洁 API,丰富配置)

文档

快速开始

环境依赖

  • PHP >= 8.2
  • Composer
  • Symfony Cache ^8.0

安装配置

composer require fastd/cache

创建配置文件 config/cache.php

<?php
return [
    'file' => [
        'adapter' => [
            'class' => \Symfony\Component\Cache\Adapter\FilesystemAdapter::class,
        ],
        'namespace' => 'app',
        'lifetime' => 3600,
        'directory' => __DIR__ . '/../runtime/cache/',
    ]
];

注册服务提供者 app.php

<?php
return [
    'services' => [
        \FastD\Cache\ServiceProvider\CacheServiceProvider::class,
    ]
];

基础使用

// 获取缓存适配器
$cache = cache('file');

// 存储数据
$item = $cache->getItem('user_123');
$item->set(['name' => 'John'])->expiresAfter(3600);
$cache->save($item);

// 读取数据
$item = $cache->getItem('user_123');
if ($item->isHit()) {
    $user = $item->get();
}

详细使用说明请查看安装指南

支持的适配器

  • File System - 开发环境,简单可靠
  • Redis - 高并发场景,性能极高
  • Memcached - 键值缓存,配置简单
  • PHP Files - 高频读取,性能最优

各适配器详细配置请查看文档

工作原理

缓存池架构

GET 请求 → 缓存检查 → 应用逻辑

  • GET 请求缓存,其他请求直通
  • CRC32 算法生成高效缓存键
  • 内置连接池管理连接复用

XMCache HTTP 中间件

XMCache 是一个强大的 HTTP 缓存中间件,提供页面级缓存能力:

核心特性

  • 自动缓存 GET 请求的 200 响应
  • 智能缓存键生成(路径 + 查询参数)
  • 缓存状态头标识(HIT/MISS)
  • 可配置缓存生命周期
  • 支持自定义缓存键

使用示例

// 配置缓存中间件
// config/cache.php
return [
    'httpCache' => [
        'lifetime' => 3600,  // 缓存 1 小时
        'cache_keys' => ['page', 'limit'],  // 参与缓存键的查询参数
    ],
];

// 注册中间件
// config/middleware.php
return [
    \FastD\Cache\Middleware\XMCache::class,
];

响应头说明

# 缓存未命中(首次请求)
X-M-Cache: mc1234567890
X-M-Cache-Status: MISS
Expires: Thu, 28 May 2026 17:00:00 GMT

# 缓存命中(后续请求)
X-M-Cache: mc1234567890
X-M-Cache-Status: HIT
Expires: Thu, 28 May 2026 17:00:00 GMT

工作流程

  1. 检查请求方法(仅缓存 GET)
  2. 检查请求头中的自定义缓存键
  3. 自动生成缓存键(路径 + 参数 CRC32)
  4. 查询缓存,命中则直接返回
  5. 未命中则执行请求,缓存响应
  6. 设置缓存状态头和过期时间

测试

composer install
./vendor/bin/phpunit

贡献

欢迎提交 Issues 和 Pull Requests。

git clone https://github.com/fastdlabs/cache.git
cd cache
composer install
composer test

学习资源

许可证

MIT License

About

HTTP Cache Middleware

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages