跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

การติดตั้งและตั้งค่า Redis บน Ubuntu

บทความนี้อธิบายขั้นตอนการติดตั้งและตั้งค่า Redis Server บน Ubuntu โดยเริ่มจากการติดตั้ง package ผ่าน `apt`, การปรับแต่งไฟล์ `redis.conf` เพื่อกำหนดค่าต่างๆ เช่น...

การติดตั้งและตั้งค่า Redis บน Ubuntu

หลังจากที่เราได้ทำความเข้าใจถึงความสำคัญของ Redis Cache ในบทความที่แล้ว ในบทความนี้ เราจะมาลงมือติดตั้งและตั้งค่า Redis Server บน Ubuntu เพื่อให้พร้อมใช้งานกับแอปพลิเคชัน PHP ของเรา

การติดตั้ง Redis package

Ubuntu มี package ของ Redis อยู่ใน repository ของตัวเอง ทำให้การติดตั้งเป็นเรื่องง่าย เพียงแค่ใช้คำสั่ง apt

sudo apt update
sudo apt install redis-server

คำสั่งแรก sudo apt update จะทำการอัปเดตรายชื่อ package ทั้งหมดในระบบ เพื่อให้แน่ใจว่าเราจะได้รับ Redis version ล่าสุดที่มีอยู่ใน repository

คำสั่งที่สอง sudo apt install redis-server จะทำการติดตั้ง Redis server และ dependencies ที่จำเป็นทั้งหมด

กรณีใช้งานจริง: หากคุณต้องการติดตั้ง Redis version ที่เฉพาะเจาะจง (เช่น version ที่เก่ากว่า) คุณอาจจะต้องเพิ่ม repository ที่มี version นั้นๆ ก่อนทำการติดตั้ง อย่างไรก็ตาม สำหรับผู้เริ่มต้น เราแนะนำให้ใช้ version ที่มีอยู่ใน Ubuntu repository ก่อน

ข้อผิดพลาดที่พบบ่อย: หากคุณพบข้อผิดพลาดเกี่ยวกับการ dependency ในระหว่างการติดตั้ง ลองใช้คำสั่ง sudo apt --fix-broken install เพื่อแก้ไขปัญหา

การปรับแต่ง redis.conf

หลังจากติดตั้ง Redis สำเร็จแล้ว เราจะต้องทำการปรับแต่งค่า config พื้นฐานเพื่อให้ Redis ทำงานได้อย่างเหมาะสม ไฟล์ config หลักของ Redis คือ /etc/redis/redis.conf

sudo nano /etc/redis/redis.conf

คำสั่งนี้จะเปิดไฟล์ redis.conf ด้วย text editor (ในที่นี้คือ nano) คุณสามารถใช้ editor อื่นๆ ที่คุณถนัดได้ เช่น vim หรือ emacs

ต่อไปนี้คือค่า config ที่สำคัญที่เราควรพิจารณา:

  • bind: กำหนด IP address ที่ Redis จะ listen อยู่ โดย default จะเป็น 127.0.0.1 ซึ่งหมายความว่า Redis จะรับ connection จาก localhost เท่านั้น หากคุณต้องการให้ Redis รับ connection จากภายนอก (เช่น จาก web server ที่อยู่คนละเครื่อง) คุณจะต้องเปลี่ยนค่านี้เป็น 0.0.0.0 หรือ IP address ของเครื่อง Redis server เอง
  • protected-mode: ค่านี้ถูกเปิดใช้งานโดย default และจะป้องกันไม่ให้ Redis รับ connection จากภายนอก หากคุณไม่ได้ตั้งค่า password (requirepass) เราแนะนำให้เปิดค่านี้ไว้เพื่อความปลอดภัย
  • port: กำหนด port ที่ Redis จะ listen อยู่ โดย default คือ 6379
  • requirepass: กำหนด password สำหรับ Redis authentication เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต สำคัญมาก ที่จะต้องตั้งค่า password นี้ หากคุณเปิดให้ Redis รับ connection จากภายนอก
  • maxmemory: กำหนด maximum memory ที่ Redis สามารถใช้ได้ เมื่อ memory เต็ม Redis จะเริ่มทำการ eviction ตาม policy ที่กำหนด (ดู maxmemory-policy)
  • maxmemory-policy: กำหนด policy ในการ eviction ข้อมูลเมื่อ memory เต็ม ตัวเลือกที่พบบ่อยคือ volatile-lru (remove least recently used keys with expire set), allkeys-lru (remove least recently used keys), volatile-ttl (remove keys with the shortest remaining time-to-live)
  • logfile: กำหนด path ของ log file ที่ Redis จะบันทึกเหตุการณ์ต่างๆ
  • databases: กำหนดจำนวน databases ที่ Redis จะสร้าง โดย default คือ 16

ตัวอย่างการตั้งค่า:

# Bind to all interfaces (USE WITH CAUTION, especially without requirepass)
# bind 0.0.0.0

# Require password for all connections
requirepass your_strong_password

# Set maximum memory to 1GB
maxmemory 1gb

# Evict least recently used keys with expire set
maxmemory-policy volatile-lru

คำเตือน: การเปิดให้ Redis รับ connection จากภายนอกโดยไม่ได้ตั้งค่า password ถือเป็นความเสี่ยงด้านความปลอดภัยอย่างยิ่ง โปรดตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า requirepass ก่อนที่จะเปิดให้ Redis รับ connection จากภายนอก

หลังจากแก้ไข redis.conf แล้ว ให้บันทึกไฟล์และปิด editor

การ start/stop/restart Redis service

หลังจากปรับแต่งค่า config แล้ว เราจะต้อง restart Redis service เพื่อให้การเปลี่ยนแปลงมีผล เราสามารถใช้คำสั่ง systemctl เพื่อจัดการ Redis service ได้

# Start Redis service
sudo systemctl start redis-server

# Stop Redis service
sudo systemctl stop redis-server

# Restart Redis service
sudo systemctl restart redis-server

# Check Redis service status
sudo systemctl status redis-server

คำสั่ง sudo systemctl start redis-server จะเริ่มต้น Redis service

คำสั่ง sudo systemctl stop redis-server จะหยุด Redis service

คำสั่ง sudo systemctl restart redis-server จะ restart Redis service ซึ่งเป็นการหยุด service ก่อน แล้วจึงเริ่มต้นใหม่

คำสั่ง sudo systemctl status redis-server จะแสดงสถานะของ Redis service ว่ากำลังทำงานอยู่หรือไม่ และแสดง log messages ที่เกี่ยวข้อง

กรณีใช้งานจริง: หากคุณทำการเปลี่ยนแปลง redis.conf คุณจะต้อง restart Redis service เสมอเพื่อให้การเปลี่ยนแปลงมีผล

ข้อผิดพลาดที่พบบ่อย: หาก Redis service ไม่สามารถ start ได้ ให้ตรวจสอบ log file (ที่กำหนดไว้ใน redis.conf) เพื่อดูรายละเอียดของข้อผิดพลาด

การตรวจสอบสถานะ Redis

นอกจากการใช้ systemctl status redis-server แล้ว เรายังสามารถใช้ redis-cli ซึ่งเป็น command-line interface สำหรับ Redis เพื่อตรวจสอบสถานะของ Redis ได้

redis-cli ping

หาก Redis server ทำงานได้ถูกต้อง คำสั่งนี้จะ return PONG

หากคุณได้ตั้งค่า password คุณจะต้อง authenticate ก่อนที่จะใช้คำสั่งอื่นๆ

redis-cli -a your_strong_password ping

หรือคุณสามารถใช้คำสั่ง AUTH หลังจาก connect เข้าไปใน Redis server แล้ว

redis-cli
AUTH your_strong_password
ping

กรณีใช้งานจริง: คุณสามารถใช้ redis-cli เพื่อ execute commands ต่างๆ บน Redis server ได้ เช่น SET, GET, DEL, INCR, DECR เป็นต้น

สรุป: ในบทความนี้ เราได้เรียนรู้วิธีการติดตั้งและตั้งค่า Redis Server บน Ubuntu รวมถึงการปรับแต่งค่า config พื้นฐาน และการตรวจสอบสถานะของ Redis ในบทความถัดไป เราจะมาดูวิธีการใช้งาน Redis Cache กับ PHP เพื่อเพิ่มประสิทธิภาพในการเข้าถึงข้อมูลจากฐานข้อมูล

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务