Redis MGET

Redis Mget



คำอธิบาย Redis Strings

สตริงเป็นโครงสร้างข้อมูลพื้นฐานและพื้นฐานที่สุดที่ฐานข้อมูล Redis นำเสนอ สตริง Redis เป็นลำดับไบต์ที่ปลอดภัยแบบไบนารี คล้ายกับสตริงปกติในภาษาการเขียนโปรแกรมเช่น Java และ c#.net สิ่งสำคัญที่สุดคือ สตริง Redis สามารถใช้เก็บเกือบทุกอย่างที่คุณชอบ เช่น สตริง จำนวนเต็ม JSON แบบอนุกรม XML และค่าไบนารี เนื่องจากชนิดข้อมูลสตริงของ Redis มีความปลอดภัยแบบไบนารี ออบเจ็กต์ไบนารี เช่น รูปภาพ วิดีโอ และเอกสารจึงสามารถจัดเก็บได้อย่างง่ายดายโดยใช้สตริง นอกจากนี้ สตริง Redis หนึ่งสตริงสามารถเก็บข้อมูลได้สูงสุด 512MB







นอกจากนี้ โครงสร้างข้อมูลสตริง Redis มักใช้ในกรณีการใช้งานต่อไปนี้:



  • เก็บเอาไว้
    • การจัดเก็บเซสชัน
    • การตอบสนอง API
    • หน้า HTML
  • เคาน์เตอร์
  • การใช้บิตแมปและการดำเนินการระดับบิต

การดำเนินการสตริงที่ใช้เป็นส่วนใหญ่ ได้แก่ SET, GET, MGET และ SETNX คำสั่ง INCRBY และ INCRBYFLOAT มักใช้เพื่อจัดการตัวนับที่ใช้งานโดยใช้โครงสร้างข้อมูลสตริง Redis ในบทช่วยสอนนี้ คำสั่ง MGET มีรายละเอียด



คำสั่ง MGET เปิดเผย

คำสั่ง MGET ใช้เพื่อดึงค่าของคีย์ Redis ที่กำหนด ยอมรับอย่างน้อยหนึ่งคีย์เป็นอาร์กิวเมนต์ นอกจากนี้ คำสั่ง MGET ทำงานบนความซับซ้อนของเวลา O(N) โดยที่ N คือจำนวนคีย์ที่ระบุ ไวยากรณ์ของคำสั่ง MGET มีดังนี้:





คีย์ MGET [ กุญแจ ... ]

เมื่อดำเนินการคำสั่ง MGET จะส่งคืนอาร์เรย์ของค่าที่เก็บไว้ที่คีย์ Redis ที่ระบุ หากไม่มีคีย์ มันจะคืนค่าพิเศษ ไม่มี ในทำนองเดียวกัน หากคีย์ไม่มีค่าสตริง a ไม่มี ค่าจะถูกส่งกลับ

กรณีการใช้งาน: ดึงการตอบกลับ API ที่แคชไว้ทั้งหมด

สมมติสถานการณ์ที่ใช้ชนิดข้อมูลสตริง Redis เพื่อใช้แคชที่มีการตอบสนอง API ล่าสุด เราใช้คำสั่ง SET เพื่อจัดเก็บการตอบสนองของ dummy API เพื่อวัตถุประสงค์ในการสาธิต



ชุด dummyhost / ลูกค้า 'ริคกี้ เบอร์นาร์ด แมรี่ ซามูเอล โจ' ชุด dummyhost / ซัพพลายเออร์ 'จิมมี่ เจเรมี แอนดรูว์ เฮร่า' ชุด dummyhost / ใบแจ้งหนี้ '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'

เราเก็บค่าสตริงสองสามค่าและอ็อบเจ็กต์ JSON แบบอนุกรมโดยใช้ชนิดข้อมูลสตริง Redis

ตอนนี้ ลองใช้คำสั่ง MGET เพื่อดึงการตอบสนองทั้งหมดในการเรียก API แต่ละครั้งพร้อมกัน

mget ดัมมี่โฮสต์ / ลูกค้า dummyhost / ซัพพลายเออร์ dummyhost / ใบแจ้งหนี้

เอาท์พุท:

1 ) 'ริคกี้ เบอร์นาร์ด แมรี่ ซามูเอล โจ'

สอง ) 'จิมมี่ เจเรมี แอนดรูว์ เฮร่า'

3 ) '{' ใบแจ้งหนี้ ': [{' invoice_id ': 1, ' invoice_payment ':1000}, {' invoice_id ': สอง, ' invoice_payment ':3400}]}'

ตามที่คาดไว้ ค่าในแต่ละคีย์จะถูกส่งกลับเป็นอาร์เรย์

การระบุคีย์ที่ไม่มีอยู่

ดังที่กล่าวไว้ คำสั่ง MGET จะคืนค่าพิเศษ ไม่มี เมื่อมีการให้คีย์ที่ไม่มีอยู่ มาระบุคีย์ที่ไม่มีอยู่ซึ่งเรียกว่า 'nonexistingkey' ให้กับคำสั่ง MGET และดำเนินการตามตัวอย่างก่อนหน้านี้ดังนี้:

mget ดัมมี่โฮสต์ / ลูกค้า dummyhost / ซัพพลายเออร์ dummyhost / ใบแจ้งหนี้ไม่มีคีย์

อย่างที่คุณเห็น ค่าสุดท้ายในอาร์เรย์คือ ไม่มี ซึ่งเชื่อมโยงกับคีย์ Redis ที่ไม่มีอยู่

โดยรวมแล้ว คำสั่ง MGET เป็นตัวเลือกที่เหมาะสมที่สุดเมื่อเราต้องการดึงค่าสตริงที่เก็บไว้ที่หลายคีย์ในการโทรครั้งเดียว แทนที่จะเรียกใช้คำสั่ง GET หลายครั้ง

บทสรุป

โดยสรุป คำสั่ง MGET ทำงานบนโครงสร้างข้อมูลสตริง Redis เพื่อคืนค่าที่จัดเก็บไว้ที่หลายคีย์ในการโทรครั้งเดียว ยอมรับคีย์ Redis อย่างน้อยหนึ่งคีย์เป็นอาร์กิวเมนต์ ตามที่เน้นไว้ คำสั่ง MGET ทำงานในความซับซ้อนของเวลา O(N) กรณีการใช้งานแสดงให้คุณเห็นถึงวิธีใช้คำสั่ง MGET เพื่อดึงการตอบสนอง API หลายรายการที่เก็บอยู่ในหลายคีย์อย่างมีประสิทธิภาพ