Redis - การวางท่อ

Redis เป็นเซิร์ฟเวอร์ TCP และรองรับโปรโตคอลการร้องขอ / ตอบกลับ ใน Redis คำขอจะทำได้ตามขั้นตอนต่อไปนี้ -

  • ไคลเอนต์ส่งแบบสอบถามไปยังเซิร์ฟเวอร์และอ่านจากซ็อกเก็ตซึ่งโดยปกติจะเป็นการปิดกั้นการตอบสนองของเซิร์ฟเวอร์

  • เซิร์ฟเวอร์ประมวลผลคำสั่งและส่งการตอบกลับกลับไปยังไคลเอนต์

ความหมายของการวางท่อ

ความหมายพื้นฐานของการไปป์ไลน์คือไคลเอนต์สามารถส่งคำขอหลายรายการไปยังเซิร์ฟเวอร์โดยไม่ต้องรอการตอบกลับเลยและในที่สุดก็อ่านการตอบกลับในขั้นตอนเดียว

ตัวอย่าง

ในการตรวจสอบการไปป์ไลน์ Redis เพียงแค่เริ่มอินสแตนซ์ Redis และพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล

$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR 
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379  
+PONG 
+OK 
redis 
:1 
:2 
:3

ในตัวอย่างข้างต้นเราจะตรวจสอบการเชื่อมต่อ Redis โดยใช้ PINGคำสั่ง เราได้ตั้งชื่อสตริงtutorial ด้วยคุณค่า redis. ต่อมาเราจะได้รับค่าคีย์นั้นและเพิ่มจำนวนผู้เยี่ยมชมสามครั้ง จากผลที่ได้เราจะเห็นว่าคำสั่งทั้งหมดถูกส่งไปยัง Redis เพียงครั้งเดียวและ Redis ให้ผลลัพธ์ของคำสั่งทั้งหมดในขั้นตอนเดียว

ประโยชน์ของการวางท่อ

ประโยชน์ของเทคนิคนี้คือประสิทธิภาพของโปรโตคอลที่ดีขึ้นอย่างมาก การเร่งความเร็วที่ได้รับจากการไปป์ไลน์มีตั้งแต่ปัจจัย 5 สำหรับการเชื่อมต่อกับ localhost ไปจนถึงปัจจัยอย่างน้อยหนึ่งร้อยในการเชื่อมต่ออินเทอร์เน็ตที่ช้าลง