将 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 反馈 — 无需本地设置。
此课程中的所有课时
- 为什么 PHP 中的缓存很重要
- 将 Redis 用作 PHP 缓存后端
- 使用 Memcached 缓存会话和对象
- 缓存失效模式