You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP/Laravel中使用Memcached存储与检索数据?

在Laravel中使用Memcached实现缓存操作

先确认配置

首先确保Laravel已经配置好Memcached驱动:

  1. 在.env文件中设置 CACHE_DRIVER=memcached
  2. 检查config/cache.php中的memcached配置,确保主机、端口等信息和你的Memcached服务匹配:
'memcached' => [
    'driver' => 'memcached',
    'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
    'sasl' => [
        env('MEMCACHED_USERNAME'),
        env('MEMCACHED_PASSWORD'),
    ],
    'options' => [
        // 可添加Memcached扩展的额外配置选项
    ],
    'servers' => [
        [
            'host' => env('MEMCACHED_HOST', '127.0.0.1'),
            'port' => env('MEMCACHED_PORT', 11211),
            'weight' => 100,
        ],
    ],
],

1. 存储数据

Laravel的Cache facade提供多种存储方式:

  • 带过期时间存储:put方法,第三个参数为有效期分钟数
  • 永久存储:forever方法,除非手动删除否则一直保留
  • 仅当键不存在时存储:add方法,返回布尔值表示存储是否成功
// 存储用户数据,有效期60分钟
$user = User::find(1);
Cache::put('user:1', $user, 60);

// 永久存储站点全局设置
$settings = SiteSetting::all();
Cache::forever('site_settings', $settings);

// 仅当键不存在时存储临时验证码
$isStored = Cache::add('temp_verification_code', '123456', 10);
if (!$isStored) {
    // 键已存在,可提示用户稍后重试
}

2. 检索数据

  • 基础检索:get方法,不存在则返回null
  • 带默认值检索:第二个参数设置默认值,避免处理null
  • 检查键是否存在:has方法
  • 获取并删除:pull方法,适合一次性使用的缓存数据
// 获取用户缓存,不存在则返回null
$cachedUser = Cache::get('user:1');

// 获取站点设置,不存在则返回空数组
$cachedSettings = Cache::get('site_settings', []);

// 检查缓存是否存在,不存在则从数据库查询后存储
if (!Cache::has('user:1')) {
    $user = User::find(1);
    Cache::put('user:1', $user, 60);
}

// 获取临时验证码并立即从缓存中删除
$code = Cache::pull('temp_verification_code');

3. 删除与清空缓存

  • 删除单个键:forget方法
  • 清空所有缓存:flush方法(注意:这会清除Memcached中所有数据,生产环境务必谨慎操作)
// 删除指定用户的缓存
Cache::forget('user:1');

// 清空所有缓存(生产环境慎用!会清除所有应用的缓存数据)
Cache::flush();

额外技巧:标签缓存

如果需要分组管理缓存(比如批量删除某一类缓存),可以使用标签功能:

// 给用户缓存打上`users`和`profile`标签
Cache::tags(['users', 'profile'])->put('user:1', $user, 60);

// 检索带标签的缓存
$cachedUser = Cache::tags(['users', 'profile'])->get('user:1');

// 删除所有`users`标签下的缓存
Cache::tags('users')->flush();

内容的提问来源于stack exchange,提问作者Gaurav Bairwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:02:46