0Pricing
PHP Academy · 课时

将 Redis 用作 PHP 缓存后端

将 PHP 连接到 Redis,并缓存查询结果和计算数据。

将 Redis 用作 PHP 缓存后端 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。

Redis 是什么

Redis 是一种内存数据结构服务器。由于速度快、数据类型丰富并内置 TTL 支持,它是 PHP 应用中最受欢迎的缓存后端。

安装 PHP Redis 扩展

请安装 phpredis C 扩展(速度最快),或安装纯 PHP 的 predis 库。

# Predis via Composer:
$ composer require predis/predis

# Or install phpredis extension:
$ pecl install redis

连接到 Redis(Predis)

创建 Predis 客户端并连接到 Redis 服务器。

<?php
require "vendor/autoload.php";

$redis = new \Predis\Client([
    "scheme" => "tcp",
    "host"   => "127.0.0.1",
    "port"   => 6379,
]);

基本缓存操作

设置、获取和删除缓存条目。

<?php
// Set with TTL (seconds):
$redis->setex("user:42", 300, json_encode($user));

// Get:
$cached = $redis->get("user:42");
$user   = $cached ? json_decode($cached, true) : fetchFromDB(42);

// Delete:
$redis->del("user:42");

使用 Redis 实现缓存模式

在 PHP 中实现缓存旁路:

<?php
function getUser(int $id): array {
    global $redis;
    $key    = "user:$id";
    $cached = $redis->get($key);
    if ($cached !== null) return json_decode($cached, true);
    $user = fetchUserFromDB($id);
    $redis->setex($key, 3600, json_encode($user));
    return $user;
}

Laravel Redis 集成

在 .env 中配置并使用 Cache 门面——无需手动创建 Predis 客户端。

# .env
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1

// Usage:
Cache::put("key", $value, 600);
$value = Cache::get("key");

原子递增与递减

使用 Redis 的原子操作实现计数器(API 使用量、速率限制)。

<?php
$hits = $redis->incr("page:home:hits");
$redis->expire("page:home:hits", 86400); // reset daily

使用 Redis 列表实现队列

Redis 列表是 Laravel Redis 队列驱动的后端。任务会以原子方式推入列表并从列表中弹出。

Redis 发布与订阅

Redis 支持发布/订阅消息,可用于实时功能(向已连接的 WebSocket 客户端广播事件)。

Redis 集群

为了实现高可用性和水平扩展,Redis Cluster 会将数据分布到多个节点。Laravel 开箱即用地支持集群配置。

监控 Redis

使用 redis-cli monitor 实时监视命令,或使用 Laravel Horizon(用于队列监控)。使用 redis-cli info memory 跟踪内存使用情况。

总结

Redis 是首选的 PHP 缓存后端——速度快、支持持久化(可选),并提供丰富的数据结构。在 Laravel 中,将 CACHE_DRIVER=redis 设为配置值,然后使用 Cache 门面。需要精细控制时,直接使用 Predis 或 phpredis。

快速检查

哪个 Redis 命令可以在设置键的同时指定以秒为单位的过期时间?

常见问题解答

「将 Redis 用作 PHP 缓存后端」课时是免费的吗?

是的 — 「将 Redis 用作 PHP 缓存后端」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。

「将 Redis 用作 PHP 缓存后端」这节课中我会学到什么?

将 PHP 连接到 Redis,并缓存查询结果和计算数据。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「将 Redis 用作 PHP 缓存后端」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 为什么 PHP 中的缓存很重要
  2. 将 Redis 用作 PHP 缓存后端
  3. 使用 Memcached 缓存会话和对象
  4. 缓存失效模式
← 返回 PHP Academy