การเปิดตัว Redis 6.0 DBMS

เตรียมไว้ การเปิดตัว DBMS เรดิส 6.0ที่อยู่ในคลาสของระบบ NoSQL Redis มีฟังก์ชันที่คล้ายกับ Memcached สำหรับการจัดเก็บข้อมูลคีย์/ค่า ปรับปรุงโดยการรองรับรูปแบบข้อมูลที่มีโครงสร้าง เช่น รายการ แฮช และชุด และความสามารถในการเรียกใช้สคริปต์ตัวจัดการ Lua ฝั่งเซิร์ฟเวอร์ รหัสโครงการ ให้มา ภายใต้ใบอนุญาต BSD โมดูลเพิ่มเติมที่นำเสนอความสามารถขั้นสูงสำหรับผู้ใช้ระดับองค์กร เช่น RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom ตั้งแต่ปีที่แล้ว ที่ให้มา ภายใต้ลิขสิทธิ์ RSAL ที่เป็นกรรมสิทธิ์ การพัฒนาโมดูลเหล่านี้ในเวอร์ชันเปิดภายใต้ใบอนุญาต AGPLv3 ดำเนินโครงการต่อไป กู๊ดฟอร์ม.

Redis ต่างจาก Memcached ตรงที่ให้การจัดเก็บข้อมูลบนดิสก์อย่างต่อเนื่องและรับประกันความปลอดภัยของฐานข้อมูลในกรณีที่มีการปิดระบบฉุกเฉิน ซอร์สโค้ดของโครงการได้รับการเผยแพร่ภายใต้ใบอนุญาต BSD ไลบรารีไคลเอนต์พร้อมใช้งานสำหรับภาษายอดนิยมส่วนใหญ่ รวมถึง Perl, Python, PHP, Java, Ruby และ Tcl Redis รองรับธุรกรรม ซึ่งช่วยให้คุณสามารถดำเนินการกลุ่มคำสั่งในขั้นตอนเดียว ทำให้มั่นใจได้ถึงความสอดคล้องและความสอดคล้อง (คำสั่งจากคำขออื่น ๆ จะไม่รบกวน) ในการดำเนินการตามชุดคำสั่งที่กำหนด และในกรณีที่เกิดปัญหา ช่วยให้คุณสามารถย้อนกลับได้ การเปลี่ยนแปลง ข้อมูลทั้งหมดถูกแคชไว้อย่างสมบูรณ์ใน RAM

คำสั่งต่างๆ เช่น การเพิ่ม/ลด การดำเนินการรายการมาตรฐานและการตั้งค่า (การรวม การแยก) การเปลี่ยนชื่อคีย์ การเลือกหลายรายการ และฟังก์ชันการเรียงลำดับมีไว้สำหรับการจัดการข้อมูล รองรับโหมดการจัดเก็บข้อมูลสองโหมด: การซิงโครไนซ์ข้อมูลไปยังดิสก์เป็นระยะและการบำรุงรักษาบันทึกการเปลี่ยนแปลงบนดิสก์ ในกรณีที่สองรับประกันความปลอดภัยของการเปลี่ยนแปลงทั้งหมดโดยสมบูรณ์ เป็นไปได้ที่จะจัดระเบียบการจำลองข้อมูลหลัก-รองไปยังเซิร์ฟเวอร์หลายเครื่อง ซึ่งดำเนินการในโหมดไม่บล็อก โหมดการส่งข้อความ "เผยแพร่/สมัครรับข้อมูล" ก็มีให้ใช้เช่นกัน ซึ่งช่องทางจะถูกสร้างขึ้น ข้อความจะถูกเผยแพร่ไปยังลูกค้าโดยการสมัครสมาชิก

สำคัญ การปรับปรุงเพิ่มใน Redis 6.0:

  • ตามค่าเริ่มต้น จะมีการเสนอโปรโตคอล RESP3 ใหม่ แต่การตั้งค่าการเชื่อมต่อจะเริ่มต้นในโหมด RESP2 และไคลเอนต์จะสลับไปใช้โปรโตคอลใหม่ก็ต่อเมื่อมีการใช้คำสั่ง HELLO ใหม่เมื่อต้องการเจรจาการเชื่อมต่อ RESP3 ช่วยให้คุณสามารถส่งคืนประเภทข้อมูลที่ซับซ้อนได้โดยตรงโดยไม่จำเป็นต้องแปลงอาร์เรย์ทั่วไปในฝั่งไคลเอ็นต์ และโดยการแยกประเภทการส่งคืน
  • รองรับรายการควบคุมการเข้าถึง (ACL) ช่วยให้คุณระบุได้อย่างแม่นยำว่าการดำเนินการใดที่ลูกค้าสามารถทำได้และการดำเนินการใดไม่สามารถทำได้ ACL ยังทำให้สามารถป้องกันข้อผิดพลาดที่อาจเกิดขึ้นในระหว่างการพัฒนาได้ ตัวอย่างเช่น ตัวจัดการที่ดำเนินการเฉพาะการดำเนินการ BRPOPLPUSH สามารถถูกห้ามไม่ให้ดำเนินการอื่น ๆ ได้ และหากการเรียก FLUSHALL ที่เพิ่มระหว่างการดีบักถูกลืมโดยไม่ได้ตั้งใจในรหัสการผลิต สิ่งนี้จะ ไม่นำไปสู่ปัญหา การใช้ ACL ไม่มีค่าใช้จ่ายเพิ่มเติมใดๆ และแทบไม่มีผลกระทบต่อประสิทธิภาพการทำงาน โมดูลอินเทอร์เฟซยังได้รับการจัดเตรียมสำหรับ ACL ทำให้สามารถสร้างวิธีการตรวจสอบสิทธิ์ของคุณเองได้ หากต้องการดูการละเมิด ACL ที่บันทึกไว้ทั้งหมด จะมีคำสั่ง "ACL LOG" มาให้ หากต้องการสร้างคีย์เซสชันที่คาดเดาไม่ได้ คำสั่ง "ACL GENPASS" ได้ถูกเพิ่มโดยใช้ HMAC ที่ใช้ SHA256
  • สนับสนุน SSL / TLS เพื่อเข้ารหัสช่องทางการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์
  • สนับสนุน การแคชข้อมูลทางฝั่งไคลเอ็นต์ ในการกระทบยอดแคชฝั่งไคลเอ็นต์กับสถานะของฐานข้อมูล มีสองโหมดให้เลือก: 1. การจดจำคีย์บนเซิร์ฟเวอร์ที่ไคลเอ็นต์ร้องขอก่อนหน้านี้เพื่อแจ้งให้ทราบเกี่ยวกับการสูญเสียความเกี่ยวข้องของรายการในแคชไคลเอ็นต์ 2. กลไก “การออกอากาศ” ซึ่งลูกค้าสมัครรับคำนำหน้าคีย์บางคำ และเซิร์ฟเวอร์จะแจ้งให้ทราบหากคีย์ที่อยู่ภายใต้คำนำหน้าเหล่านี้เปลี่ยนแปลง ข้อดีของโหมด "การออกอากาศ" คือเซิร์ฟเวอร์ไม่เปลืองหน่วยความจำเพิ่มเติมในการจัดเก็บแผนที่ของค่าที่แคชไว้บนฝั่งไคลเอ็นต์ แต่ข้อเสียคือจำนวนข้อความที่ส่งเพิ่มขึ้น
  • นายหน้าข้อความ Disque ซึ่งอนุญาตให้คุณใช้ Redis เพื่อประมวลผลคิวข้อความได้ถูกลบออกจากโครงสร้างพื้นฐานแล้ว โมดูลแยกต่างหาก.
  • เพิ่ม พร็อกซีคลัสเตอร์ซึ่งเป็นพร็อกซีสำหรับคลัสเตอร์ของเซิร์ฟเวอร์ Redis ช่วยให้ไคลเอ็นต์จัดระเบียบงานกับเซิร์ฟเวอร์ Redis หลายเครื่องเสมือนว่าเป็นอินสแตนซ์เดียว พร็อกซีสามารถกำหนดเส้นทางคำขอไปยังโหนดด้วยข้อมูลที่จำเป็น การเชื่อมต่อแบบมัลติเพล็กซ์ กำหนดค่าคลัสเตอร์ใหม่หากตรวจพบความล้มเหลวของโหนด และดำเนินการคำขอที่ครอบคลุมหลายโหนด
  • API สำหรับการเขียนโมดูลได้รับการปรับปรุงอย่างมาก โดยเปลี่ยน Redis ให้เป็นเฟรมเวิร์กที่ช่วยให้คุณสามารถสร้างระบบในรูปแบบของโมดูลเสริมได้
  • มีการใช้งานโหมดการจำลองแบบซึ่งไฟล์ RDB จะถูกลบทันทีหลังจากใช้งานแล้ว
  • โปรโตคอลการจำลองแบบ PSYNC2 ได้รับการปรับปรุง ซึ่งทำให้สามารถทำการซิงโครไนซ์บางส่วนได้บ่อยขึ้น โดยเพิ่มโอกาสในการระบุออฟเซ็ตทั่วไปสำหรับแบบจำลองและต้นแบบ
  • การโหลดไฟล์ RDB ได้รับการเร่ง ความเร่งมีตั้งแต่ 20 ถึง 30% ขึ้นอยู่กับเนื้อหาไฟล์ การดำเนินการคำสั่ง INFO ได้รับการเร่งความเร็วอย่างมากเมื่อมีไคลเอนต์ที่เชื่อมต่ออยู่จำนวนมาก
  • มีการเพิ่มคำสั่ง STRALGO ใหม่พร้อมกับการใช้อัลกอริธึมการประมวลผลสตริงที่ซับซ้อน ปัจจุบันมีอัลกอริธึม LCS (ลำดับย่อยร่วมที่ยาวที่สุด) เพียงหนึ่งเดียวเท่านั้น ซึ่งมีประโยชน์เมื่อเปรียบเทียบลำดับ RNA และ DNA

ที่มา: opennet.ru

เพิ่มความคิดเห็น