Sets & Sorted Sets: ภาพรวม
สองประเภท หนึ่งแนวคิด: ความไม่ซ้ำกัน
หัวข้อที่มีชื่อว่า “สองประเภท หนึ่งแนวคิด: ความไม่ซ้ำกัน”Redis มี collection สองประเภทที่รับประกันว่า สมาชิกแต่ละตัวจะปรากฏได้มากที่สุดหนึ่งครั้ง:
| ประเภท | ลำดับ | ข้อมูลเพิ่มเติม | เหมาะสำหรับ |
|---|---|---|---|
| Set | ไม่มี (hash-table) | ไม่มี | Tags, ตรวจสอบสมาชิก, set algebra |
| Sorted Set | ตามคะแนน (float64) | คะแนนต่อสมาชิก | Leaderboard, ฟีดที่มีอันดับ, range query |
ทั้งสองประเภทเก็บ unique strings เหมือนกัน ข้อแตกต่างคือ Sorted Set แนบ score เป็น floating-point ให้กับสมาชิกแต่ละตัว และรักษาลำดับตามค่านั้นตลอดเวลา
ลองใช้ Set
หัวข้อที่มีชื่อว่า “ลองใช้ Set”Set คือ collection ของ string ที่ไม่มีลำดับและไม่ซ้ำกัน การเพิ่มค่าเดิมสองครั้งไม่มีผล
127.0.0.1:6379> SADD lang:tags "python" "go" "rust" "go"(integer) 3127.0.0.1:6379> SMEMBERS lang:tags1) "rust"2) "go"3) "python"127.0.0.1:6379> SCARD lang:tags(integer) 3SADD lang:tags "python" "go" "rust" "go"
SMEMBERS lang:tags
SCARD lang:tagsลองใช้ Sorted Set
หัวข้อที่มีชื่อว่า “ลองใช้ Sorted Set”Sorted Set จับคู่สมาชิกแต่ละตัวกับคะแนน สมาชิกจะถูกดึงออกมาตามลำดับคะแนนเสมอ
127.0.0.1:6379> ZADD scores 1500 "alice" 2200 "bob" 980 "carol"(integer) 3127.0.0.1:6379> ZRANGE scores 0 -1 WITHSCORES1) "carol"2) "980"3) "alice"4) "1500"5) "bob"6) "2200"127.0.0.1:6379> ZRANK scores "alice"(integer) 1ZADD scores 1500 "alice" 2200 "bob" 980 "carol"
ZRANGE scores 0 -1 WITHSCORES
ZRANK scores "alice"เลือกใช้แบบไหน
หัวข้อที่มีชื่อว่า “เลือกใช้แบบไหน”- Set — ต้องการตอบคำถาม “X เป็นสมาชิกหรือเปล่า?” หรือ “A กับ B มีอะไรเหมือนกัน?” อย่างรวดเร็ว
- Sorted Set — ต้องการการเรียงลำดับ, การจัดอันดับ, หรือ range query (เช่น “ผู้เล่นที่มีคะแนนระหว่าง 1000 ถึง 2000”)
สิ่งที่โมดูลนี้ครอบคลุม
หัวข้อที่มีชื่อว่า “สิ่งที่โมดูลนี้ครอบคลุม”| บทเรียน | หัวข้อ |
|---|---|
| Sets & Sorted Sets: ภาพรวม | หน้านี้ — ประเภทและการลองใช้เบื้องต้น |
| Sets | SADD, SREM, SMEMBERS, SISMEMBER, SCARD, SRANDMEMBER, SPOP |
| Set Operations | SINTER, SUNION, SDIFF และ STORE variants |
| Sorted Sets | ZADD, ZSCORE, ZRANGE, ZREVRANGE, ZRANK, ZRANGEBYSCORE, ZINCRBY, ZCARD, ZREM |
| Leaderboards | สร้าง leaderboard จริงด้วย Sorted Sets |