高级用法
使用文件缓存
文件缓存适合开发环境或小型应用:
$fileCache = new \startmvc\core\Cache('file');
// 存储复杂数据
$fileCache->set('user_data', [
'id' => 1,
'name' => '张三',
'roles' => ['admin', 'editor']
]);
// 获取数据
$userData = $fileCache->get('user_data');
使用Redis缓存
Redis缓存适合生产环境和高并发应用:
$redisCache = new \startmvc\core\Cache('redis');
// 存储对象
$user = new stdClass();
$user->id = 100;
$user->name = '李四';
$redisCache->set('user_object', $user);
// 获取对象
$user = $redisCache->get('user_object');
自定义缓存配置
// 自定义Redis配置
$customConfig = [
'host' => '192.168.1.100',
'port' => 6380,
'password' => 'secret',
'database' => 1,
'cacheTime' => 7200
];
$cache = new \startmvc\core\Cache('redis', $customConfig);
最佳实践
- 选择合适的驱动:开发环境:使用文件缓存简单快捷生产环境:使用Redis缓存提高性能和可靠性
- 合理设置缓存时间:频繁变化的数据设置短时间缓存相对稳定的数据可设置更长的缓存时间
- 缓存键命名规范:使用有意义的前缀区分不同模块例如:user:profile:1001、product:list:page1
- 缓存更新策略:数据更新时主动清除相关缓存对于关联数据,考虑批量清除相关缓存
注意事项
- 文件缓存会在
runtime/cache/
目录下生成缓存文件,确保该目录可写 - Redis缓存需要先安装并启动Redis服务器
- 缓存键名区分大小写
- 缓存数据会自动序列化和反序列化,支持存储复杂数据结构
通过合理使用缓存系统,可以显著提升应用性能,减少数据库查询,提高用户体验。