首页 > PHP > Laravel教程 缓存

Laravel教程 缓存

2025-02-24 15:30:07

缓存配置

  • 配置文件:Laravel 的缓存配置文件位于config/cache.php。可在其中指定应用程序默认使用的缓存驱动等设置。
  • 常用驱动及设置
    • 文件驱动:默认情况下,Laravel 使用文件缓存驱动,将缓存数据存储在storage/framework/cache/data目录下。适合简单应用和开发环境。
    • Redis 驱动:若要使用 Redis 作为缓存驱动,需安装phpredis PHP 扩展或predis/predis包。修改config/cache.php中的defaultredis,还可在.env文件中配置 Redis 连接相关的环境变量,如REDIS_HOST等。
    • 数据库驱动:使用数据库缓存驱动,要先创建用于存储缓存数据的表。可通过php artisan cache:table命令生成迁移文件,执行php artisan migrate创建表。

缓存基本操作

  • 存储数据
    • 指定过期时间:使用Cache::put('key', 'value', $minutes)方法将数据存储在缓存中,并指定缓存过期时间(以分钟为单位)。
    • 永久存储:使用Cache::forever('key', 'value')可将数据永久存储在缓存中。
  • 检索数据:通过$value = Cache::get('key')获取缓存中的数据。若缓存键不存在,则返回null。也可传递第二个参数指定默认值,如$value = Cache::get('key', 'default')
  • 删除数据:使用Cache::forget('key')从缓存中删除指定的缓存键。
  • 检查缓存键是否存在:通过Cache::has('key')检查缓存键是否存在,存在返回true,否则返回false

缓存辅助函数

除了使用Cache门面,Laravel 还提供了全局辅助函数cache。如cache(['key' => 'value'], $minutes)用于存储数据,$value = cache('key')用于获取数据,cache()->forget('key')用于删除数据。

缓存高级用法

  • 缓存标签:Laravel 支持缓存标签,方便对一组缓存进行操作。如Cache::tags(['tag1', 'tag2'])->put('key', 'value', $minutes)存储带标签的缓存数据,Cache::tags(['tag1', 'tag2'])->flush()可删除带有这些标签的所有缓存数据。
  • 缓存锁:缓存锁可防止并发操作导致的数据不一致问题。示例代码如下:
 
 
$lock = Cache::lock('lock_name', 10);
if ($lock->get()) {
    try {
        // 执行操作
    } finally {
        $lock->release();
    }
}

缓存实战示例

 
 
public function getUsers()
{
    $key = 'users';
    $minutes = 60;
    $users = Cache::remember($key, $minutes, function () {
        return DB::table('users')->get();
    });
    return $users;
}

 

上述代码中,Cache::remember方法会检查是否存在与users缓存键对应的值。如果存在,则返回该值;如果缓存键不可用,则从数据库中获取用户列表并将其缓存。
使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top