Redis ในฐานะแบ็กเอนด์แคชของ PHP
เชื่อมต่อ PHP กับ Redis และแคชผลลัพธ์คำสืบค้นรวมถึงข้อมูลที่คำนวณแล้ว
Redis ในฐานะแบ็กเอนด์แคชของ PHP เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
Redis คืออะไร
Redis คือเซิร์ฟเวอร์โครงสร้างข้อมูลในหน่วยความจำ เป็นระบบแคชที่ได้รับความนิยมสูงสุดสำหรับแอปพลิเคชัน PHP เนื่องจากมีความเร็ว ชนิดข้อมูลหลากหลาย และรองรับ TTL ในตัว
การติดตั้งส่วนขยาย Redis สำหรับ PHP
ติดตั้งส่วนขยาย C phpredis (เร็วที่สุด) หรือไลบรารี 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;
}การผสานรวม Redis กับ Laravel
กำหนดค่าใน .env และใช้ฟาซาดแคช โดยไม่ต้องสร้างไคลเอ็นต์ Predis ด้วยตนเอง
# .env
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
// Usage:
Cache::put("key", $value, 600);
$value = Cache::get("key");การเพิ่ม/ลดค่าแบบอะตอมิก
ใช้การดำเนินการแบบอะตอมิกของ Redis สำหรับตัวนับ (การใช้งานส่วนต่อประสานโปรแกรมประยุกต์ การจำกัดอัตรา)
<?php
$hits = $redis->incr("page:home:hits");
$redis->expire("page:home:hits", 86400); // reset dailyรายการ Redis สำหรับคิว
รายการ Redis เป็นระบบเบื้องหลังสำหรับไดรเวอร์คิว Redis ของ Laravel งานจะถูกเพิ่มเข้าและนำออกจากรายการแบบอะตอมิก
การเผยแพร่/สมัครรับของ Redis
Redis รองรับการส่งข้อความแบบเผยแพร่/สมัครรับสำหรับฟีเจอร์แบบเรียลไทม์ (การกระจายเหตุการณ์ไปยังไคลเอ็นต์ WebSocket ที่เชื่อมต่ออยู่)
คลัสเตอร์ Redis
เพื่อให้มีความพร้อมใช้งานสูงและรองรับการขยายตามแนวนอน คลัสเตอร์ Redis จะแจกจ่ายข้อมูลไปยังโหนดหลายตัว Laravel รองรับการกำหนดค่าคลัสเตอร์ในตัว
การตรวจสอบ Redis
ใช้ redis-cli monitor เพื่อเฝ้าดูคำสั่งแบบเรียลไทม์ หรือใช้ Laravel Horizon (สำหรับตรวจสอบคิว) ติดตามการใช้หน่วยความจำด้วย redis-cli info memory
สรุป
Redis เป็นระบบแคช PHP ที่ได้รับความนิยมสูง เนื่องจากเร็ว เก็บข้อมูลถาวรได้ (เลือกใช้ได้) และมีโครงสร้างข้อมูลหลากหลาย ใน Laravel ให้ตั้งค่า CACHE_DRIVER=redis และใช้ฟาซาดแคช หากต้องการควบคุมอย่างละเอียด ให้ใช้ Predis หรือ phpredis โดยตรง
ตรวจสอบความเข้าใจอย่างรวดเร็ว
คำสั่ง Redis ใดใช้ตั้งค่าคีย์พร้อมกำหนดเวลาหมดอายุเป็นวินาที
คำถามที่พบบ่อย
บทเรียน “Redis ในฐานะแบ็กเอนด์แคชของ PHP” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Redis ในฐานะแบ็กเอนด์แคชของ PHP” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Redis ในฐานะแบ็กเอนด์แคชของ PHP”
เชื่อมต่อ PHP กับ Redis และแคชผลลัพธ์คำสืบค้นรวมถึงข้อมูลที่คำนวณแล้ว คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “Redis ในฐานะแบ็กเอนด์แคชของ PHP” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใดการแคชจึงสำคัญใน PHP
- Redis ในฐานะแบ็กเอนด์แคชของ PHP
- Memcached สำหรับการแคชเซสชันและออบเจ็กต์
- รูปแบบการทำให้แคชไม่ถูกต้อง