เรดดิสสการ์ด

Reddi S Ska Rd



“ชุด Redis เป็นชุดของสตริงที่ไม่มีลำดับซึ่งไม่มีรายการที่ซ้ำกัน สิ่งเหล่านี้คล้ายกับ Java HashSets, Python Sets และอื่นๆ สิ่งสำคัญที่สุดคือ การดำเนินการพื้นฐาน เช่น การเพิ่ม การลบ และการตรวจสอบการมีอยู่ของสมาชิกนั้นมีประสิทธิภาพสูงเพราะทำงานในความซับซ้อนของเวลา O(1)”

สมาชิกของเซต

ตามที่กล่าวไว้ ชุด Redis มีรายการสตริงเฉพาะ รายการที่มีอยู่แล้วจะไม่ได้รับการยอมรับโดยชุด Redis และจะถูกละเว้น นอกจากนี้ หนึ่งชุดสามารถเก็บสายได้ถึง 4 พันล้านสายที่ไม่ซ้ำกัน









ลักษณะของการถือครองสมาชิกที่ไม่ซ้ำกันของชุด Redis นั้นมีประโยชน์ในกรณีการใช้งานจริงหลายกรณี



  • ความสามารถในการดำเนินการชุดมาตรฐานเช่น Union, Intersection และ Difference
  • การติดตามผู้เยี่ยมชมเว็บไซต์ที่ไม่ซ้ำใคร
  • เป็นตัวแทนของความสัมพันธ์ของเอนทิตีในโลกแห่งความเป็นจริง

คำสั่ง SCARD

คำสั่ง SCARD ย่อมาจาก Set Cardinality ส่งคืนจำนวนสมาชิกในชุดที่เก็บไว้ที่คีย์ที่กำหนด มันทำงานในความซับซ้อนของเวลา O(1) ซึ่งหมายความว่าเวลาที่คำสั่ง SCARD ใช้ในการดำเนินการไม่ได้ขึ้นอยู่กับจำนวนสมาชิกในชุดที่กำหนด ต้องใช้เวลาคงที่เสมอ





คำสั่ง SCARD มีไวยากรณ์ง่ายๆ ดังที่แสดงต่อไปนี้

SCARD set_key

set_key: กุญแจของชุด Redis



คำสั่งนี้ส่งคืนค่าจำนวนเต็มซึ่งเป็นจำนวนสมาชิกในชุด

กรณีการใช้งาน – นับผู้เข้าชมที่ไม่ซ้ำกับเว็บไซต์

สมมติว่าบริษัทพิซซ่า “YummyPizza” มีเว็บไซต์ชื่อ yummypizza.com ซึ่งผู้คนสามารถสั่งพิซซ่าออนไลน์ได้ เพื่อติดตามยอดขายและฐานลูกค้า พวกเขาดูแลฐานข้อมูล Redis เพื่อจัดเก็บผู้เยี่ยมชมเว็บไซต์ที่ไม่ซ้ำกันทั้งหมดในแต่ละเดือน

เมื่อใดก็ตามที่ผู้ใช้เยี่ยมชมเว็บไซต์ YummyPizza ควรเพิ่ม ID ผู้ใช้ลงในฐานข้อมูล Redis นอกจากนี้ ไม่ควรเพิ่มผู้ใช้คนเดียวกันลงในฐานข้อมูลด้วย ดังนั้น โครงสร้างข้อมูลในอุดมคติคือชุด Redis ซึ่งชุดเก็บเฉพาะสมาชิกที่ไม่ซ้ำกัน

สมมติว่ามีผู้ใช้ 5 รายเข้าชมเว็บไซต์ และสมาชิกเหล่านี้ถูกเพิ่มไปยังฐานข้อมูล Redis ดังที่แสดงต่อไปนี้

SADD YummyPizzaผู้เข้าชม:October John Mary Raza Stoinis Prince

ตามที่คาดไว้ จำนวนเต็ม 5 ถูกส่งคืน ซึ่งหมายความว่าสมาชิกทั้งห้าจะถูกเพิ่มเข้าไปในชุดที่เก็บไว้ที่คีย์ “ YummyPizzaผู้เข้าชม:ตุลาคม

ในตอนท้ายของวัน ผู้ดูแลระบบของบริษัทจำเป็นต้องตรวจสอบจำนวนผู้เข้าชมเว็บไซต์ที่ไม่ซ้ำทั้งหมด ดังนั้นจึงจำเป็นต้องคำนวณ Set cardinality โชคดีที่คำสั่ง SCARD ที่กล่าวถึงก่อนหน้านี้มีประโยชน์ในสถานการณ์ประเภทนี้

เรียกใช้คำสั่ง SCARD บนชุดที่เก็บไว้ที่คีย์ “ YummyPizzaผู้เข้าชม:ตุลาคม

น่ากลัว YummyPizzaผู้เข้าชม:ตุลาคม

เอาต์พุตคือ 5 ซึ่งหมายความว่าสมาชิกที่ไม่ซ้ำกันห้าตัวอยู่ในชุดที่ระบุ คำสั่งนี้ทำงานเร็วเกินไป ไม่สำคัญว่าสมาชิกห้าคนหรือสมาชิก 50,000 คน เวลาดำเนินการจะคงที่

สมมติว่าคีย์ชุดที่ระบุไม่มีอยู่ในฐานข้อมูล Redis จากนั้นผลลัพธ์จะเป็น 0 ดังตัวอย่างต่อไปนี้ ในกรณีนี้ เราจะระบุคีย์ที่ไม่ได้อยู่ในฐานข้อมูล

Scard คีย์ที่ไม่มีอยู่

บทสรุป

โดยสรุป ชุด Redis เป็นตัวเลือกที่เหมาะสำหรับการจัดเก็บสตริงที่ไม่ซ้ำใคร ตามที่กล่าวไว้ สิ่งที่สำคัญที่สุดเกี่ยวกับชุด Redis คือการดำเนินการชุดที่เกี่ยวข้องส่วนใหญ่ใช้เวลาคงที่ในการดำเนินการ คำสั่ง SCARD เป็นหนึ่งในคำสั่ง set ที่ใช้มากที่สุดในการคำนวณจำนวนสมาชิกของ set ทั้งหมดสำหรับ set ที่เก็บไว้ที่คีย์ที่ระบุ ไม่ว่าจะมีสมาชิกชุดกี่ชุดก็ตาม คำสั่งนี้ใช้เวลาคงที่เพื่อให้เอาต์พุต ดังที่แสดงในตัวอย่างสุดท้าย หากไม่มีคีย์ set เอาต์พุตจะเป็น 0