Hyperf缓存功能怎么启用_HyperfRedis缓存集成方法【介绍】

1次阅读

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

Hyperf缓存功能怎么启用_HyperfRedis缓存集成方法【介绍】

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' => HyperfCacheDriverRedisDriver::class
  • 'pool' => 'default'(与 redis.php 中的连接池名一致)
  • 'ttl' => 3600(单位秒,建议按业务设置,如用户信息 1 小时,配置类 24 小时)
  • 若需兼容空查询防穿透,可加:'empty_model_ttl' => 3600(仅 model-cache 生效)

三种主流接入方式

根据场景选择一种或组合使用:

  • 注解方式(适合服务方法):在方法上加 #[Cacheable(prefix: "user:")],调用时自动读写缓存,键名为 user:1 类格式
  • 模型缓存(适合 Eloquent 查询):模型 use Cacheable Trait,调用 User::findFromCache(1) 即可,键名按 mc:default:m:user:id:1 规则生成
  • 手动调用(适合灵活控制):注入 CacheInterface,用 $this->cache->get('key')set('key', $value, 3600)
text=ZqhQzanResources