
Redis Insight เป็นเครื่องมีทำให้เรามีหน้าต่าง UI สำหรับจัดการและวิเคราะห์ข้อมูลที่อยู่ใน Redis ได้ง่ายขึ้น โดยสามารถดู แก้ไข เพิ่ม ลบ รวมถึงติตตามประสิทธิภาพของ Redis ได้แบบครบจบ โดยวันนี้เราจะมาดูกันว่าหากเราต้องการเริ่มต้นใช้งาน จะมีวิธียากง่ายยังไงบ้าง
ขั้นตอนการเริ่มใช้งานใช้งานเราก็จะต้องติดตั้งโปรแกรมก่อนซึ่ง Redis Insight สามารถดาวน์โหลดได้ฟรีที่ https://redis.io/insight/ สามารถกด “Download Now” กรอกฟอร์มแล้วเราก็จะได้ไฟล์ในการติดตั้งมาติดตั้งได้ปกติได้เลย

หรือจะติดตั้งผ่าน Docker ก็สะดวกเหมือนกันครับ สำหรับใครที่ใช้ Docker อยู่แล้ว

โดยการใช้ผ่าน Docker เราสามารถใช้คำสั่ง docker run -d –name redisinsight -p 5540:5540 redis/redisinsight:latest -v redisinsight:/data เมื่อการติดตั้งเสร็จสมบูรณ์สามารถเปิดเบราว์เซอร์และไปที่ http://localhost:5540 และใช้งานได้เลย

ถ้าติดตั้งผ่านแอปพลิเคชันที่ติดตั้งในเครื่องให้เปิดโปรแกรม Redis Insight แล้วใช้งานได้เหมือนกันเลย

เมื่อเราเปิด Redis Insight มาแล้วเราก็จะต้องเชื่อมต่อกับ Redis server เราสามารถใส่ค่า Host / Port ได้เลยซึ่ง Port ค่าเริ่มต้นจะเป็น 6379 ส่วนของ Database Alias จะเป็นชื่อที่ใช้เรียกฐานข้อมูลนี้ใน Redis Insight เพื่อให้จำง่ายเฉย ๆ
ส่วน Username กับ Password ถ้าเราไม่ได้ตั้งไว้ของ Redis server ก็สามารถเว้นว่างไว้ได้ ส่วน Timeout เป็นระยะเวลาในการรอว่าจะเชื่อมต่อ Redis database ภายในกี่วินาที (ถ้าจะกว่านี้ไม่รอ ไม่เชื่อมละ)

- Select Logical Database ใช้ระบุ Logical Database (ค่าเริ่มต้นใน Redis คือ 0)
- Enable automatic data decompression ใช้สำหรับข้อมูลที่ถูกบีบอัด
- Use TLS เลือกเมื่อ Redis Server รองรับการเชื่อมต่อแบบ TLS
- Use SSH Tunnel ใช้สำหรับเชื่อมต่อผ่าน SSH Tunnel เพื่อความปลอดภัย

เมื่อเชื่อมต่อได้แล้วเราก็จะเห็นแถบการเชื่อมต่อว่ามี Database ของ Redis ที่เราเชื่อมไว้แล้ว ถ้าเชื่อมไม่ติดมันจะไม่ขึ้นแบบนี้ แต่จะมี Error แดง ๆ ป้ายใหญ่ ๆ มาบอกเอง
เมื่อเราลองจิ้มไปที่ Redis Server ที่เราเชื่อมไว้ จะพบกับ Key และรายละเอียดต่าง ๆ แสดงขึ้นมา ในหน้าต่างนี้จะมีเมนูย่อย ๆ ให้เราใช้งานอีกเพียบ

เริ่มที่มุมบนซ้ายเรียกว่า “Database Section” ส่วนนี้แสดง ชื่อฐานข้อมูลกำลังใช้งานอยู่ (ในตัวอย่างคือ 127.0.0.1:6379) ซึ่งหมายถึง Redis server กำลังรันอยู่ที่ localhost และพอร์ต 6379 (ค่าเริ่มต้นของ Redis)

แถบกลางด้านซ้ายจะเจอกับพื้นที่ของ “Key List” ที่มีรายการของ keys ในฐานข้อมูล Redis แต่ละ key มีประเภท (Type) แสดงกำกับให้เห็นชัด ๆ อยู่ด้วย และรายละเอียดที่เราจะเห็นได้เลยจากหน้านี้คือ ชื่อ Key, ประเภทของ Key และ ขนาดของข้อมูลที่เก็บไว้ใน Key (แสดงในหน่วย Byte)

ต่อมาสิ่งที่อยู่บน “Key List” เป็นส่วนที่เราเอาไว้หา key ต่าง ๆ ที่ต้องการได้

ส่วนใน Key หากเราจิ้มไปที่รายตัว จะมีหน้าต่าง “Key Details Panel” แสดงมาตรงหน้าขวามือ ในนี้เราก็จะเห็นค่าของ key เวลา TTL (Time-to-Live) หากตั้งค่าไว้

โครงสร้างของ key (เช่น ใน HASH จะเห็น key-value pairs ภายใน)

หรือจะเพิ่ม Key ผ่านหน้านี้จากปุ่ม + Key เราสามารถกดแล้วเลือกประเภทของ Key กำหนด TTL ตั้งชื่อ Key พร้อมกำหนดค่าผ่านหน้านี้ได้เลย


หากซ้ายมือ icon ที่สองจะมีเมนู Workbench ที่ทำให้เราเขียนคำสั่ง Redis ลงไปโดยไม่ต้องเป็น CLI เลย ส่วนนี้เอาไว้เขียนพวก Pipeline หรือ Transaction ได้ สามารถเขียนหลาย ๆ คำสั่งแล้วรันพร้อม ๆ กันได้เลย

ปุ่มกดรันจะอยู่มุมขวาด้านล่าง เมื่อกดรันแล้วค่าต่าง ๆ ของผลลัพธ์ก็จะแสดงออกมาในหน้านี้เช่นกัน

ตัวอย่างการเรียกข้อมูลออกมาดูโดยการใช้คำสั่ง Redis CLI พร้อม ๆ กัน

นอกจากนั้นในเมนูถัดมาจะพบกับเมนู Analysis Tool จะเราสามารถสร้าง Report สรุปข้อมูลต่าง ๆ ที่อยู่ใน Redis เอามาวิเคราะห์ต่อได้แบบชิล ๆ


สุดท้ายเมนู Pub/Sub (Publish/Subscribe) ส่วนนี้จะเอาไว้สำหรับจัดการระบบการสื่อสารใน Redis ที่รองรับรูปแบบการส่งข้อความ Publish/Subscribe (Pub/Sub) ระหว่าง Client และ Server
Pub/Sub คืออะไร?
- Publisher: ฝ่ายส่งข้อความไปยัง Channel
- Subscriber: ฝ่ายที่สมัครรับข้อความจาก Channel
- Channel: เป็นเหมือนช่องทางการสื่อสารระหว่าง Publisher และ Subscriber
ตัวอย่างการใช้งานในชีวิตจริง เช่น:
- ระบบแจ้งเตือน (Notifications)
- การอัปเดตข้อมูลแบบ Real-time เช่น Stock Market หรือ Chat Application

ทั้งหมดนี้ก็จะเป็นตัวอย่างการใช้งาน Redis Insight เครื่องมือที่จะช่วยให้เราวิเคราะห์และจัดการฐานข้อมูล Redis ได้อย่างง่ายดาย