CodeIgniter配置缓存驱动需三步:加载驱动、配置参数、业务调用;支持文件(默认)、Redis(CI3需手动扩展,CI4原生支持)、数据库(CI3内置,CI4需自定义Handler)三种驱动,调用接口统一。

CodeIgniter 配置缓存驱动,核心在于三步:加载对应驱动、配置连接参数、在业务中调用。不同驱动(文件、Redis、数据库)的配置方式略有差异,但都围绕 Cache 类展开。下面按驱动类型说明关键操作。
配置文件缓存驱动
文件缓存是 CodeIgniter 默认启用的轻量方案,无需额外扩展,只需确认路径可写并设置缓存目录:
- 确保
WRITEPATH . 'cache/'(CI4)或APPPATH . 'cache/'(CI3)目录存在且 Web 服务器有读写权限 - CI4 中,在
app/Config/Cache.php设置:$handler = 'file';<br>$file = [<br> 'storePath' => WRITEPATH . 'cache/',<br> 'mode' => 0640,<br>];
- CI3 中,不需额外配置,默认即用
cache_file,也可在控制器中显式加载:$this->load->driver('cache', ['adapter' => 'file']);
配置 Redis 缓存驱动
Redis 需要驱动支持和连接配置。CI3 和 CI4 实现方式不同,注意区分:
-
CI3:需手动引入
Cache_redis.php驱动文件
– 将官方或社区版Cache_redis.php放入application/libraries/Cache/drivers/
– 修改application/libraries/Cache.php(复制自 system),在$valid_drivers中加入'cache_redis'
– 在config/autoload.php或控制器中加载:$this->load->driver('cache', ['adapter' => 'redis']);
– 可选:在config/redis.php中定义 host/port/password,并在驱动类中读取 -
CI4:原生支持更简洁
– 安装 Predis 或 PhpRedis 扩展(推荐 PhpRedis)
– 在app/Config/Cache.php中设置:$handler = 'redis';<br>$redis = [<br> 'host' => '127.0.0.1',<br> 'port' => 6379,<br> 'password' => '',<br> 'database' => 0,<br>];
– 框架会自动使用RedisHandler连接
配置数据库缓存驱动
数据库缓存适合多服务器部署或需持久化缓存元数据的场景,但性能低于 Redis:
-
CI3:
– 创建缓存表(SQL 脚本见官方文档,含cache_id、cache_data、cache_time、cache_expire字段)
– 在config/database.php中确保已配置好默认数据库组
– 加载时指定 adapter:$this->load->driver('cache', ['adapter' => 'database']);
– 若表名非默认cache,需在驱动类中覆盖$table属性 -
CI4:
– 不直接提供database缓存处理器,但可通过自定义 Handler 实现
– 推荐改用Redis或File;如确需 DB 缓存,应继承BaseHandler并实现get/save/delete方法,再注册到Cache.php配置中
通用调用方式(CI3 & CI4 均适用)
无论哪种驱动,缓存操作接口高度一致:
- 获取值:
$value = $this->cache->get('key'); - 写入值(带过期时间,单位秒):
$this->cache->save('key', $data, 300); - 删除:
$this->cache->delete('key'); - 清空全部:
$this->cache->clean(); - 查看信息:
$this->cache->cache_info();
CI4 还支持依赖注入方式获取缓存实例:service('cache'),更利于测试与解耦。



















