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

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

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

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

การเปลี่ยนแปลงที่สำคัญใน Redis 7.0:

  • เพิ่มการรองรับฟังก์ชันที่เรียกใช้งานด้านข้าง เซิร์ฟเวอร์แตกต่างจากสคริปต์ Lua ที่เคยรองรับมาก่อน ฟังก์ชันไม่ได้จำเพาะเจาะจงกับแอปพลิเคชันใดแอปพลิเคชันหนึ่ง และได้รับการออกแบบมาเพื่อใช้งานตรรกะเพิ่มเติมที่ขยายขีดความสามารถของเซิร์ฟเวอร์ ฟังก์ชันจะถูกประมวลผลอย่างราบรื่นไปพร้อมกับข้อมูล และเชื่อมโยงกับฐานข้อมูล ไม่ใช่แอปพลิเคชัน และจะถูกจำลองและจัดเก็บไว้ในที่จัดเก็บถาวร
  • มีการเสนอ ACL รุ่นที่สองซึ่งช่วยให้คุณควบคุมการเข้าถึงข้อมูลตามคีย์และช่วยให้คุณสามารถกำหนดชุดกฎที่แตกต่างกันสำหรับการเข้าถึงคำสั่งที่มีความสามารถในการผูกตัวเลือกหลายตัว (ชุดการอนุญาต) กับผู้ใช้แต่ละคน แต่ละคีย์สามารถระบุได้ด้วยสิทธิ์เฉพาะ ตัวอย่างเช่น คุณสามารถจำกัดการเข้าถึงเฉพาะการอ่านหรือการเขียนชุดย่อยบางชุดเท่านั้น
  • มีการจัดการใช้งานแบบแบ่งพาร์ติชัน (แบ่งส่วน) ของกระบวนทัศน์การกระจายข้อความ Publish-Subscribe ที่ทำงานอยู่ในคลัสเตอร์ โดยข้อความจะถูกส่งไปยังโหนดเฉพาะที่มีการแนบช่องทางข้อความ หลังจากนั้นข้อความนี้จะถูกเปลี่ยนเส้นทางไปยังโหนดที่เหลือรวมอยู่ด้วย ในเศษ ลูกค้าสามารถรับข้อความโดยสมัครรับข้อมูลจากช่อง ทั้งโดยการเชื่อมต่อกับโหนดหลักและโหนดรองของส่วน การควบคุมดำเนินการโดยใช้คำสั่ง SSUBSCRIBE, SUNSUBSCRIBE และ SPUBLISH
  • เพิ่มการสนับสนุนสำหรับการประมวลผลคำสั่งย่อยในบริบทส่วนใหญ่
  • เพิ่มคำสั่งใหม่:
    • ซเอ็มป็อป, บีซเอ็มป็อป.
    • แอลเอ็มป๊อป, บีแอลเอ็มป๊อป.
    • ซินเตอร์การ์ด, ซินเตอร์การ์ด.
    • เผยแพร่, ติดตาม, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB
    • เวลาหมดอายุ PEXPIRETIME
    • EVAL_RO, EVALSHA_RO, SORT_RO
    • ฟังก์ชั่น *, FCALL, FCALL_RO
    • เอกสารคำสั่ง รายการคำสั่ง
    • ฮิสโตแกรมเวลาแฝง
    • ส่วนแบ่งคลัสเตอร์, ลิงก์คลัสเตอร์, คลัสเตอร์ DELSLOTSRANGE, คลัสเตอร์ ADDSLOTSRANGE
    • ลูกค้าไม่มีการขับไล่
    • เอซีแอล ดรายรัน.
  • มีความสามารถในการประมวลผลการกำหนดค่าหลายรายการพร้อมกันในการเรียก CONFIG SET/GET ครั้งเดียว
  • เพิ่มตัวเลือก “-json”, “-2”, “-scan”, “-functions-rdb” ลงในยูทิลิตี้ redis-cli แล้ว
  • ตามค่าเริ่มต้น การเข้าถึงการตั้งค่าและคำสั่งของลูกค้าที่ส่งผลต่อความปลอดภัยจะถูกปิดใช้งาน (เช่น คำสั่ง DEBUG และ MODULE ถูกปิดใช้งาน และห้ามเปลี่ยนการกำหนดค่าด้วยแฟล็ก PROTECTED_CONFIG) redis-cli จะไม่ส่งออกคำสั่งที่มีข้อมูลที่ละเอียดอ่อนไปยังไฟล์ประวัติอีกต่อไป
  • มีการแนะนำการปรับให้เหมาะสมส่วนใหญ่โดยมีเป้าหมายเพื่อเพิ่มประสิทธิภาพและลดการใช้หน่วยความจำ ตัวอย่างเช่น การใช้หน่วยความจำลดลงอย่างมากเมื่อเปิดใช้งานโหมดคลัสเตอร์ เมื่อดำเนินการคัดลอกเมื่อเขียน และเมื่อทำงานกับแฮชและคีย์ zset ปรับปรุงตรรกะสำหรับการล้างข้อมูลลงดิสก์ (การเรียก fsync) จำนวนแพ็กเก็ตเครือข่ายและการเรียกของระบบเมื่อส่งการตอบกลับไปยังไคลเอนต์ลดลง ประสิทธิภาพการจำลองได้รับการปรับปรุงแล้ว
  • ช่องโหว่ CVE-2022-24735 ในสภาพแวดล้อมสำหรับการรันสคริปต์ Lua ได้รับการแก้ไขแล้ว ซึ่งช่วยให้คุณสามารถแทนที่โค้ด Lua ของคุณเองและดำเนินการในบริบทของผู้ใช้รายอื่นได้ รวมถึงผู้ที่มีสิทธิ์สูงกว่าด้วย
  • แก้ไขช่องโหว่ CVE-2022-24736 ซึ่งทำให้กระบวนการเซิร์ฟเวอร์ Redis หยุดทำงานเนื่องจากการยกเลิกการอ้างอิงตัวชี้ NULL การโจมตีจะดำเนินการโดยการโหลดสคริปต์ Lua ที่ออกแบบมาเป็นพิเศษ

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster