ภาพรวมของประเภทข้อมูลใน Redis (Redis Overview of Data Types)
1. บทนำ
Redis เป็นฐานข้อมูลประเภท Key-Value ที่รองรับโครงสร้างข้อมูลที่หลากหลาย ซึ่งช่วยให้สามารถใช้งานได้กับหลายกรณีศึกษา เช่น การแคชข้อมูล การจัดการเซสชัน และระบบคิวข้อความ
2. ประเภทข้อมูลใน Redis
Redis มีประเภทข้อมูลหลักดังต่อไปนี้:
2.1 String
- เป็นประเภทข้อมูลพื้นฐานที่สุด
- เก็บข้อมูลเป็นสตริงไบต์ (สูงสุด 512MB ต่อคีย์)
- ใช้สำหรับการเก็บค่า เช่น ค่าแคช ตัวนับ และข้อมูลพื้นฐาน
- ตัวอย่างการใช้งาน:
SET mykey "Hello, Redis"
GET mykey
2.2 List
- เป็นลิสต์ของสตริงที่เรียงลำดับตามลำดับการเพิ่มข้อมูล (FIFO)
- เหมาะสำหรับการใช้งานเป็นคิว (Queue) หรือสแตก (Stack)
- ตัวอย่างการใช้งาน:
LPUSH mylist "A"
LPUSH mylist "B"
RPUSH mylist "C"
LRANGE mylist 0 -1
2.3 Set
- เป็นกลุ่มของสตริงที่ไม่ซ้ำกันและไม่มีลำดับ
- เหมาะสำหรับการเก็บข้อมูลที่ต้องการความเป็นเอกลักษณ์
- ตัวอย่างการใช้งาน:
SADD myset "A"
SADD myset "B"
SADD myset "A"
SMEMBERS myset
2.4 Sorted Set (Zset)
- คล้ายกับ
Setแต่มีคะแนน (Score) กำกับแต่ละค่า - เหมาะสำหรับการจัดอันดับข้อมูล เช่น ระบบ Leaderboard
- ตัวอย่างการใช้งาน:
ZADD myzset 1 "Alice"
ZADD myzset 3 "Bob"
ZADD myzset 2 "Charlie"
ZRANGE myzset 0 -1 WITHSCORES
2.5 Hash
- ใช้เก็บคู่ค่า (field-value) ภายใต้คีย์เดียว
- เหมาะสำหรับเก็บข้อมูลเช่น ข้อมูลผู้ใช้หรือการตั้งค่า
- ตัวอย่างการใช้งาน:
HSET user:1001 name "Alice"
HSET user:1001 age "25"
HGETALL user:1001
2.6 Bitmap
- ใช้สำหรับเก็บข้อมูลแบบบิต (0 หรือ 1)
- เหมาะสำหรับการเก็บสถานะ เช่น การติดตามพฤติกรรมของผู้ใช้
- ตัวอย่างการใช้งาน:
SETBIT mybitmap 5 1
GETBIT mybitmap 5
2.7 HyperLogLog
- ใช้สำหรับประมาณค่าจำนวนเอกลักษณ์ของข้อมูลที่แตกต่างกัน
- มีประโยชน์สำหรับการนับจำนวนผู้ใช้ที่ไม่ซ้ำกันในเว็บไซต์
- ตัวอย่างการใช้งาน:
PFADD myhll "user1" "user2" "user3"
PFCOUNT myhll
2.8 Streams
- ใช้สำหรับการจัดการข้อมูลที่เข้ามาแบบต่อเนื่อง (Real-time Data Streaming)
- เหมาะสำหรับการใช้งานระบบข้อความหรือการบันทึกเหตุการณ์
- ตัวอย่างการใช้งาน:
XADD mystream * sensor-id 1 temperature 22.5
XRANGE mystream - +
3. สรุป
Redis รองรับโครงสร้างข้อมูลที่หลากหลาย ซึ่งช่วยให้สามารถใช้งานได้ในหลายกรณี เช่น การเก็บข้อมูลแบบแคช ระบบคิว หรือระบบนับคะแนน โดยการเลือกใช้ประเภทข้อมูลที่เหมาะสมจะช่วยให้ระบบมีประสิทธิภาพสูงสุด