ติดตั้งและตั้งค่า Redis Cache บน VPS — คู่มือฉบับสมบูรณ์

Redis เป็น In-Memory Data Store ที่มีความเร็วสูงสุด และได้รับความนิยมในการใช้งาน Caching, Session Storage, Real-time Analytics และ Message Queue บน Cloud VPS ของ Dot Enterprise หรือเซิร์ฟเวอร์อื่นๆ ติดตั้ง Redis เพื่อเพิ่มประสิทธิภาพของ Application ได้อย่างมีนัยสำคัญ บทความนี้จะแนะนำวิธีติดตั้งและตั้งค่า Redis บน VPS Ubuntu พร้อมตัวอย่างการใช้งานเบื้องต้น

1. อัปเดตระบบและติดตั้ง Redis

ขั้นแรกให้อัปเดต Package List และติดตั้ง Redis Server:

sudo apt update
sudo apt install redis-server redis-tools -y

ตรวจสอบ Version ของ Redis:

redis-server --version
redis-cli --version

2. เปิด Redis Service

เปิด Redis Service และตั้งให้ Auto-start:

sudo systemctl start redis-server
sudo systemctl enable redis-server
sudo systemctl status redis-server

ตรวจสอบว่า Redis กำลังทำงานอยู่:

redis-cli ping                 # ตอบ PONG ถ้า Redis ทำงาน

3. ตั้งค่า Redis Configuration

ไฟล์ Configuration ของ Redis อยู่ที่ /etc/redis/redis.conf ให้แก้ไขตัวแปรต่างๆ ตามความต้องการ:

sudo nano /etc/redis/redis.conf

การตั้งค่าที่สำคัญ:

# Port ที่ Redis ฟัง (Default: 6379)
port 6379

# Bind Address (Default: 127.0.0.1 - localhost only)
bind 127.0.0.1

# Require Password (Optional)
requirepass your_strong_password_here

# Max Memory Usage
maxmemory 256mb

# Max Memory Policy (เมื่อ Memory เต็ม)
maxmemory-policy allkeys-lru

# Save Database (Persistence)
save 900 1       # Save every 900 seconds if at least 1 key changed
save 300 10      # Save every 300 seconds if at least 10 keys changed
save 60 10000    # Save every 60 seconds if at least 10000 keys changed

# Append Only File (AOF)
appendonly yes
appendfsync everysec

บันทึกการเปลี่ยนแปลงด้วย Ctrl+O และ Enter จากนั้นออกด้วย Ctrl+X

4. ตั้งค่า Password สำหรับ Redis

หากต้องการให้ Redis มีความปลอดภัยมากขึ้น ให้ตั้ง Password:

sudo nano /etc/redis/redis.conf

# ค้นหา requirepass และตั้ง Password
requirepass your_very_strong_password_here

บันทึกและ Restart Redis:

sudo systemctl restart redis-server

# ทดสอบโดย Login ด้วย Password
redis-cli
> auth your_very_strong_password_here
> ping

5. ตั้งค่า Memory Limit และ Eviction Policy

กำหนดปริมาณ Memory สูงสุดที่ Redis สามารถใช้ได้:

sudo nano /etc/redis/redis.conf

# ตั้ง Max Memory (เช่น 256MB)
maxmemory 256mb

# Eviction Policy (วิธีการลบ Key เมื่อ Memory เต็ม):
# allkeys-lru: ลบ Key ที่ใช้น้อยที่สุดเก่าที่สุด (Recommended)
# volatile-lru: ลบ Key ที่มี TTL ที่ใช้น้อยที่สุดเก่าที่สุด
# allkeys-random: ลบ Key แบบสุ่ม
maxmemory-policy allkeys-lru

Restart Redis เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart redis-server

6. ติดตั้ง Redis Client สำหรับ Application

สำหรับ PHP Application:

sudo apt install php-redis -y
sudo systemctl restart apache2   # or php-fpm

สำหรับ Node.js Application:

npm install redis

สำหรับ Python Application:

pip install redis

7. ติดตั้ง Persistence (RDB และ AOF)

Redis มี 2 วิธีในการเก็บข้อมูล:

RDB (Redis Database): สแนปชอตของข้อมูลทั้งหมด เร็วแต่อาจสูญหายข้อมูลได้

sudo nano /etc/redis/redis.conf

# ตั้ง Save Interval
save 900 1      # Save เมื่อ 900 วินาทีผ่านไปและมี 1 key เปลี่ยน
save 300 10
save 60 10000

AOF (Append Only File): บันทึกทุก Command ที่ทำการเปลี่ยนแปลง ช้ากว่า RDB แต่ปลอดภัยกว่า

sudo nano /etc/redis/redis.conf

# เปิด AOF
appendonly yes
appendfsync everysec    # หรือ always หรือ no

8. ตรวจสอบและ Monitor Redis

ใช้ redis-cli ในการตรวจสอบสถานะของ Redis:

redis-cli INFO                 # ดูข้อมูลทั้งหมด
redis-cli INFO memory          # ดูข้อมูล Memory
redis-cli DBSIZE               # ดูจำนวน Key
redis-cli --bigkeys            # ดู Key ที่ใหญ่ที่สุด
redis-cli MONITOR              # Monitor Commands Real-time

9. ตัวอย่างการใช้งาน Redis

เข้าสู่ Redis CLI:

redis-cli

# Set Value
> SET mykey "Hello Redis"
> GET mykey

# Set Value with Expiration (10 seconds)
> SET tempkey "This will expire" EX 10

# Increment Value
> SET counter 0
> INCR counter
> INCRBY counter 5

# List Operations
> LPUSH mylist "a"
> LPUSH mylist "b"
> LRANGE mylist 0 -1

# Hash Operations
> HSET user:1 name "John"
> HSET user:1 email "[email protected]"
> HGETALL user:1

# Set Operations
> SADD myset "member1"
> SADD myset "member2"
> SMEMBERS myset

# Delete Key
> DEL mykey

# Flush All Database (ระวัง!)
> FLUSHDB              # ลบ Key ใน Database ปัจจุบัน
> FLUSHALL            # ลบ Key ทั้งหมดในทุก Database

สรุป

Redis เป็นเครื่องมือที่ทรงพลังสำหรับเพิ่มประสิทธิภาพของ Application บน VPS การติดตั้งและตั้งค่า Redis อย่างถูกต้องจะช่วยให้ Application ของคุณทำงานเร็วและมีประสิทธิภาพสูงขึ้น หากคุณใช้ Cloud VPS จาก Dot Enterprise คุณจะมีทรัพยากรเพียงพอในการรัน Redis และ Application อื่นๆ ได้อย่างราบรื่น