温馨提示×

linux laravel如何做缓存

小樊
41
2026-09-25 11:47:53
栏目: 智能运维

在 Linux + Laravel 环境下,缓存一般指的是 Laravel 的缓存系统。Laravel 本身已经封装得非常好,你只需要选择“缓存驱动”并合理使用 API 即可。

下面从 概念 → 配置 → 常见用法 → Linux 实战建议 逐步说明。


一、Laravel 支持的缓存驱动

Laravel 支持多种缓存驱动(在 config/cache.php 中配置):

驱动 说明 适合场景
file 文件缓存(默认) 开发、小型项目
database 数据库缓存 已有数据库,不想装额外服务
redis Redis 缓存 生产环境推荐
memcached Memcached 高性能场景
array 内存(请求级) 测试
apc / apcu PHP 扩展 单机

✅ 生产环境最推荐:Redis


二、Linux 下配置缓存(以 Redis 为例)

1. 安装 Redis(Linux)

# Ubuntu / Debian
sudo apt update
sudo apt install redis-server

# 启动
sudo systemctl enable redis
sudo systemctl start redis

测试:

redis-cli ping
# 返回 PONG

2. 安装 PHP Redis 扩展

sudo apt install php-redis
sudo systemctl restart php-fpm   # 或 apache2

3. 配置 Laravel 使用 Redis

.env 文件:

CACHE_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

清空配置缓存:

php artisan config:clear

三、Laravel 缓存常用操作

1. 写入缓存

use Illuminate\Support\Facades\Cache;

// 永久缓存
Cache::forever('site_name', 'Laravel');

// 缓存 10 分钟
Cache::put('user_count', 100, 10);

2. 读取缓存

$name = Cache::get('site_name');

// 带默认值
$count = Cache::get('user_count', 0);

3. 判断是否存在

if (Cache::has('user_count')) {
    //
}

4. 删除缓存

Cache::forget('user_count');
Cache::flush(); // 清空所有缓存(慎用)

四、高级用法(实际项目很常用)

1. 缓存闭包(自动存)

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

✅ 第一次查数据库
✅ 之后 60 分钟内直接读缓存


2. 缓存 API 接口(示例)

public function index()
{
    return Cache::remember('api.posts', 30, function () {
        return Post::latest()->paginate(10);
    });
}

3. 模型缓存(推荐包)

composer require spatie/laravel-model-status

或使用:

composer require genealabs/laravel-model-caching

五、Linux 下缓存维护命令

# 清缓存(非常重要)
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# 查看 Redis 缓存
redis-cli
keys *

六、生产环境建议

✅ 使用 Redis
✅ 设置缓存过期时间
✅ 不缓存用户敏感信息
✅ 部署后执行 php artisan cache:clear
✅ 用 Supervisor 管理队列 + 缓存


七、如果你愿意,我可以帮你

你可以告诉我:

  • ✅ 是 开发环境还是生产环境
  • ✅ 用的是 Redis / 文件 / 数据库
  • ✅ 想缓存什么(接口 / 页面 / 配置)

我可以直接给你 可复制的 Laravel 缓存代码示例。

0 踩