Redis 6.0 DBMS-ийн хувилбар

Бэлтгэсэн DBMS хувилбар Редис 6.0, NoSQL системийн ангилалд хамаарах. Redis нь жагсаалт, хэш, багц гэх мэт бүтэцлэгдсэн өгөгдлийн формат, сервер талын Lua зохицуулагч скриптүүдийг ажиллуулах чадвараар сайжруулсан түлхүүр/утга өгөгдөл хадгалах Memcached-тэй төстэй функцуудыг хангадаг. Төслийн код нийлүүлсэн BSD лицензийн дагуу. Өнгөрсөн жилээс хойш RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom зэрэг байгууллагын хэрэглэгчдэд зориулсан дэвшилтэт боломжуудыг санал болгодог нэмэлт модулиуд. нийлүүлсэн өмчийн RSAL лицензийн дагуу. AGPLv3 лицензийн дагуу эдгээр модулиудын нээлттэй хувилбаруудыг боловсруулах ажлыг төслийн дагуу үргэлжлүүлж байна Сайн FORM.

Memcached-ээс ялгаатай нь Redis нь дискэн дээрх өгөгдлийг байнга хадгалах боломжийг олгодог бөгөөд яаралтай унтарсан тохиолдолд мэдээллийн сангийн аюулгүй байдлыг баталгаажуулдаг. Төслийн эх кодыг 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" командыг өгнө. Урьдчилан таамаглах боломжгүй сессийн түлхүүрүүдийг үүсгэхийн тулд SHA256-д суурилсан HMAC ашиглан "ACL GENPASS" командыг нэмсэн.
  • тусламж SSL / TLS үйлчлүүлэгч болон серверийн хоорондох холбооны сувгийг шифрлэх.
  • тусламж үйлчлүүлэгч тал дээр өгөгдлийг кэш хийх. Үйлчлүүлэгчийн кэшийг өгөгдлийн сангийн төлөвтэй уялдуулахын тулд хоёр горимыг ашиглах боломжтой: 1. Үйлчлүүлэгчийн кэш дэх оруулгын хамаарал алдагдах талаар мэдэгдэхийн тулд үйлчлүүлэгчийн өмнө нь хүссэн түлхүүрүүдийг сервер дээр санах. 2. Үйлчлүүлэгч тодорхой түлхүүр угтваруудыг захиалж, эдгээр угтварт багтах товчлуурууд өөрчлөгдсөн тохиолдолд сервер түүнд мэдэгддэг "өргөн нэвтрүүлэг" механизм. "Өргөн нэвтрүүлгийн" горимын давуу тал нь сервер нь үйлчлүүлэгчийн талд хадгалагдсан утгын газрын зургийг хадгалахад нэмэлт санах ой үрдэггүй, харин сул тал нь дамжуулагдсан мессежийн тоо нэмэгдэх явдал юм.
  • Мессежийн дарааллыг боловсруулахын тулд Redis-ийг ашиглах боломжийг олгодог Disque мессеж брокер нь үндсэн бүтцээс хасагдсан. тусдаа модуль.
  • Нэмсэн Кластер прокси, Redis серверүүдийн кластерт зориулсан прокси нь үйлчлүүлэгчид хэд хэдэн Redis серверүүдтэй нэг жишээ мэт ажлыг зохион байгуулах боломжийг олгодог. Прокси нь хүсэлтийг шаардлагатай өгөгдөл бүхий зангилаа руу чиглүүлэх, олон талт холболт хийх, зангилааны доголдол илэрсэн тохиолдолд кластерыг дахин тохируулах, олон зангилаа дамжих хүсэлтийг гүйцэтгэх боломжтой.
  • Модулиудыг бичих API нь мэдэгдэхүйц сайжирч, үндсэндээ Redis-ийг нэмэлт модулиудын хэлбэрээр систем үүсгэх боломжийг олгодог хүрээ болгон хувиргасан.
  • RDB файлуудыг ашигласны дараа шууд устгадаг хуулбарлах горимыг хэрэгжүүлсэн.
  • PSYNC2 хуулбарлах протоколыг сайжруулсан бөгөөд энэ нь хуулбар болон мастерт нийтлэг офсетийг тодорхойлох боломжийг нэмэгдүүлснээр хэсэгчилсэн дахин синхрончлолыг илүү олон удаа хийх боломжтой болсон.
  • RDB файлуудын ачааллыг хурдасгасан. Файлын агуулгаас хамааран хурдатгал нь 20-30% хооронд хэлбэлздэг. Олон тооны холбогдсон үйлчлүүлэгчид байгаа үед INFO командын гүйцэтгэл мэдэгдэхүйц хурдассан.
  • Мөр боловсруулах нарийн төвөгтэй алгоритмуудыг хэрэгжүүлснээр шинэ STRALGO тушаал нэмэгдсэн. Одоогоор зөвхөн нэг LCS (хамгийн урт нийтлэг дэд дараалал) алгоритм байгаа бөгөөд энэ нь РНХ ба ДНХ-ийн дарааллыг харьцуулах үед хэрэг болох юм.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх