# Redis คืออะไร? คู่มือใช้ Redis Cache ใน Laravel & Next.js สำหรับนักพัฒนา SME ปี 2026
เว็บแอปของคุณโหลดช้า? ฐานข้อมูลรับ Query มากเกินไป? ผู้ใช้รอนานจนหมดความอดทน? ปัญหาเหล่านี้เป็นสิ่งที่นักพัฒนาทุกคนต้องเผชิญเมื่อแอปพลิเคชันเติบโตขึ้น และ Redis คือคำตอบที่ได้รับความนิยมสูงสุดในการแก้ปัญหาเหล่านี้
Redis ไม่ใช่แค่ระบบ Caching ธรรมดา แต่ยังเป็น In-memory Data Structure Store ที่ทรงพลัง สามารถใช้เป็น Message Queue, Session Store, Rate Limiter และอีกมากมาย
ในคู่มือนี้คุณจะได้เรียนรู้ว่า Redis คืออะไร ทำงานอย่างไร และวิธีติดตั้งใช้งาน Redis Cache ใน Laravel และ Next.js พร้อม Code ตัวอย่างที่นำไปใช้ได้จริง
Redis คืออะไร?
Redis (Remote Dictionary Server) คือ Open-source In-memory Data Store ที่เก็บข้อมูลใน RAM ทำให้การอ่านและเขียนข้อมูลเร็วกว่าฐานข้อมูลปกติหลายเท่า โดยรองรับ Data Structure หลากหลาย:
| Data Structure | การใช้งาน |
|---|---|
| String | Cache ข้อมูลทั่วไป, Counter |
| Hash | จัดเก็บ Object หรือ Record |
| List | Queue, Activity Feed |
| Set | Tags, Unique Visitors |
| Sorted Set | Leaderboard, Ranking |
| Pub/Sub | Real-time Messaging |
ทำไมต้อง Redis?
ติดตั้ง Redis บน Server
Linux/Ubuntu
```bash
sudo apt update
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
redis-cli ping # ตอบว่า PONG = สำเร็จ
```
Docker (แนะนำสำหรับ Development)
```bash
docker run -d --name redis -p 6379:6379 redis:alpine
```
ใช้ Redis Cache ใน Laravel 11
ขั้นตอนที่ 1: ติดตั้ง Package
Laravel มี Redis Driver ในตัวผ่าน Predis:
```bash
composer require predis/predis
```
ขั้นตอนที่ 2: ตั้งค่า .env
```env
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
```
ขั้นตอนที่ 3: Cache ข้อมูลใน Controller
```php
use Illuminate\Support\Facades\Cache;
// Cache ข้อมูล 60 นาที
$products = Cache::remember('products.all', 3600, function () {
return Product::with('category')->get();
});
// Cache เฉพาะ User
$userData = Cache::remember("user.{$userId}.profile", 1800, function () use ($userId) {
return User::with('orders')->find($userId);
});
// ลบ Cache เมื่อมีการอัปเดต
Cache::forget('products.all');
```
ขั้นตอนที่ 4: Rate Limiting ด้วย Redis
```php
use Illuminate\Support\Facades\RateLimiter;
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
```
ใช้ Redis Cache ใน Next.js
ขั้นตอนที่ 1: ติดตั้ง ioredis
```bash
npm install ioredis
```
ขั้นตอนที่ 2: สร้าง Redis Client
```typescript
// lib/redis.ts
import Redis from 'ioredis';
const redis = new Redis({
host: process.env.REDIS_HOST || '127.0.0.1',
port: parseInt(process.env.REDIS_PORT || '6379'),
password: process.env.REDIS_PASSWORD || undefined,
});
export default redis;
```
ขั้นตอนที่ 3: Cache ใน API Route
```typescript
// app/api/products/route.ts
import redis from '@/lib/redis';
import { NextResponse } from 'next/server';
export async function GET() {
const cacheKey = 'products:all';
// ตรวจสอบ Cache ก่อน
const cached = await redis.get(cacheKey);
if (cached) {
return NextResponse.json(JSON.parse(cached));
}
// ดึงข้อมูลจาก DB
const products = await fetchProductsFromDB();
// บันทึก Cache 10 นาที
await redis.setex(cacheKey, 600, JSON.stringify(products));
return NextResponse.json(products);
}
```
ขั้นตอนที่ 4: Session Management
```typescript
// lib/session.ts
import redis from './redis';
export async function setSession(sessionId: string, data: object) {
await redis.setex(`session:${sessionId}`, 3600, JSON.stringify(data));
}
export async function getSession(sessionId: string) {
const data = await redis.get(`session:${sessionId}`);
return data ? JSON.parse(data) : null;
}
```
เปรียบเทียบประสิทธิภาพก่อนและหลังใช้ Redis
| Metric | ก่อนใช้ Redis | หลังใช้ Redis | ปรับปรุง |
|---|---|---|---|
| Response Time | 450ms | 25ms | -94% |
| DB Queries/min | 1,200 | 120 | -90% |
| Server Load | 85% | 35% | -59% |
| Concurrent Users | 200 | 2,000 | +900% |
Best Practices การใช้ Redis ใน Production
สรุป
Redis คือเครื่องมือที่ขาดไม่ได้สำหรับนักพัฒนาที่ต้องการให้เว็บแอปทำงานได้เร็วและรองรับผู้ใช้จำนวนมาก ทั้ง Laravel และ Next.js มี Integration ที่ดีเยี่ยมกับ Redis ทำให้เริ่มต้นใช้งานได้ไม่ยาก
สิ่งที่ควรทำต่อไป:
หากต้องการให้ ADS FIT ช่วยพัฒนาระบบ Laravel หรือ Next.js พร้อม Redis สำหรับธุรกิจ SME ของคุณ ติดต่อเราได้เลย เพื่อรับคำปรึกษาฟรี!
