Hyperf缓存需手动启用,核心三步:安装redis/cache/model-cache组件、配置Redis连接池与前缀、设置Redis为默认驱动并选择注解/模型/手动三种接入方式。

Hyperf 的缓存功能默认不启用,需手动安装组件、配置驱动并选择合适的方式接入。核心在于三步:装依赖、配 Redis、选缓存方式(注解 / 模型 / 手动调用)。Redis 是最常用且推荐的生产级缓存后端。
安装 Redis 组件与缓存扩展
执行以下命令安装必需依赖:
-
composer require hyperf/redis—— 提供 Redis 客户端支持 -
composer require hyperf/cache—— 提供切面缓存、CacheInterface等基础能力 - 如需模型级自动缓存,再加:
composer require hyperf/model-cache
配置 Redis 连接
在 config/autoload/redis.php 中定义连接配置,例如:
- 使用环境变量更安全:
'host' => env('REDIS_HOST', 'localhost') - 指定数据库编号:
'db' => (int)env('REDIS_DB', 0) - 设置连接池参数(避免高并发下连接耗尽):
'min_connections' => 1,'max_connections' => 10 - 可额外配置前缀:
'options' => ['prefix' => 'hyperf:'],避免键名冲突
启用缓存驱动并设为默认
编辑 config/autoload/cache.php,确保 default 驱动指向 Redis:
'driver' => Hyperf\Cache\Driver\RedisDriver::class-
'pool' => 'default'(与 redis.php 中的连接池名一致) -
'ttl' => 3600(单位秒,建议按业务设置,如用户信息 1 小时,配置类 24 小时) - 若需兼容空查询防穿透,可加:
'empty_model_ttl' => 3600(仅model-cache生效)
三种主流接入方式
根据场景选择一种或组合使用:
-
注解方式(适合服务方法):在方法上加
#[Cacheable(prefix: "user:")],调用时自动读写缓存,键名为user:1类格式 -
模型缓存(适合 Eloquent 查询):模型 use
CacheableTrait,调用User::findFromCache(1)即可,键名按mc:default:m:user:id:1规则生成 -
手动调用(适合灵活控制):注入
CacheInterface,用$this->cache->get('key')或set('key', $value, 3600)










