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

NoSQL системийн ангилалд хамаарах Redis 7.0 DBMS-ийн хувилбар хэвлэгдэн гарлаа. Redis нь жагсаалт, хэш, багц гэх мэт бүтэцлэгдсэн өгөгдлийн форматыг дэмжсэнээр сайжруулсан түлхүүр/утга өгөгдөл хадгалах функцуудыг хангадаг бөгөөд Луа дахь сервер талын скрипт боловсруулагчийг ажиллуулах боломжийг олгодог. Төслийн кодыг BSD лицензийн дагуу нийлүүлдэг. RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom зэрэг корпорацийн хэрэглэгчдэд зориулсан дэвшилтэт боломжуудыг санал болгодог нэмэлт модулиудыг 2019 оноос хойш өмчийн RSAL лицензийн дагуу нийлүүлж байна. Саяхан зогсонги байдалд орсон GoodFORM төсөл нь AGPLv3 лицензийн дагуу эдгээр модулиудын нээлттэй хувилбаруудыг үргэлжлүүлэн хөгжүүлэхийг оролдсон.

Memcached гэх мэт санах ойн санах ойн хадгалах системээс ялгаатай нь Redis нь өгөгдлийг дискэн дээр байнга хадгалж, гэмтлийн үед мэдээллийн баазыг бүрэн бүтэн байлгах боломжийг олгодог. Төслийн эх кодыг BSD лицензийн дагуу түгээдэг. Үйлчлүүлэгчийн сангууд нь Perl, Python, PHP, Java, Ruby, Tcl зэрэг хамгийн алдартай хэлнүүдэд байдаг. Redis нь өгөгдсөн командын гүйцэтгэлд тууштай, тууштай байдлыг (бусад хүсэлтийн командууд саад болохгүй), асуудал гарсан тохиолдолд нэг алхамаар гүйцэтгэх боломжийг олгодог гүйлгээг дэмждэг. өөрчлөлтүүд. Бүх өгөгдөл нь RAM-д бүрэн хадгалагдсан байдаг.

Өгөгдлийг удирдахад нэмэгдүүлэх/бууруулах, стандарт жагсаалт болон багц үйлдлүүд (нэгдэл, огтлолцол), товчлуурын нэрийг өөрчлөх, олон сонголт хийх, эрэмбэлэх функц зэрэг командуудыг өгсөн. Хадгалах хоёр горимыг дэмждэг: өгөгдлийг диск рүү үе үе синхрончлох, диск дээрх өөрчлөлтийн бүртгэлийг засварлах. Хоёр дахь тохиолдолд бүх өөрчлөлтийн бүрэн аюулгүй байдлыг хангана. Мастер-боол өгөгдлийн хуулбарыг блоклохгүй горимд хэд хэдэн серверт зохион байгуулах боломжтой. "Нийтлэх/захиалах" мессежийн горим бас боломжтой бөгөөд үүнд суваг үүсгэж, захиалгыг захиалагчдад түгээдэг.

Redis 7.0-ийн гол өөрчлөлтүүд:

  • Сервер талын функцүүдийн дэмжлэгийг нэмсэн. Луа хэл дээрх өмнө нь дэмжигдсэн скриптүүдээс ялгаатай нь функцууд нь програмтай холбоогүй бөгөөд серверийн чадавхийг өргөжүүлэх нэмэлт логикийг хэрэгжүүлэхэд чиглэгддэг. Функцүүд нь програмтай биш, өгөгдөлтэй, мэдээллийн сантай салшгүй холбоотой боловсруулагддаг, үүнд хуулбарлаж, байнгын хадгалалтад хадгалдаг.
  • Түлхүүрүүд дээр тулгуурлан өгөгдөлд хандах хандалтыг хянах, хэрэглэгч бүрт хэд хэдэн сонгогчийг (зөвшөөрлийн багц) холбох чадвартай командуудад хандах өөр өөр дүрмүүдийг тодорхойлох боломжийг олгодог ACL-ийн хоёр дахь хэвлэлийг санал болгов. Түлхүүр бүрийг тодорхой эрх мэдэлтэйгээр тодорхойлж болно, жишээлбэл, та зөвхөн тодорхой дэд бүлэг түлхүүрүүдийг унших эсвэл бичих хандалтыг хязгаарлаж болно.
  • Кластерт ажиллаж байгаа Нийтлэх-Захиалах мессеж түгээлтийн парадигмын хуваалттай (хэсэглэсэн) хэрэгжилтийг хангасан бөгөөд үүнд мессежийг зурвасын суваг хавсаргасан тодорхой зангилаа руу илгээж, дараа нь энэ мессежийг үлдсэн зангилаа руу дахин чиглүүлдэг. хэлтэрхий дотор. Үйлчлүүлэгчид үндсэн зангилаа болон хэсгийн хоёрдогч зангилаатай холбогдож сувагт бүртгүүлснээр мессеж хүлээн авах боломжтой. Хяналтыг SSUBSCRIBE, SUNSUBSCRIBE, SPUBLISH командуудыг ашиглан гүйцэтгэдэг.
  • Ихэнх контекстэд дэд командуудыг боловсруулах дэмжлэг нэмэгдсэн.
  • Шинэ тушаалууд нэмэгдсэн:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • НИЙТЛЭХ, SUBSCRIBE, SUNSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • ФУНКЦИОН *, FCALL, FCALL_RO.
    • COMMAND DCS, COMAND LAST.
    • ХОЦРОЛТЫН ГИСТОГРАМ.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • ҮЙЛЧЛҮҮЛЭГЧИЙГ НӨГӨӨЛӨХГҮЙ.
    • ACL DRYRUN.
  • Нэг CONFIG SET/GET дуудлагад олон тохиргоог нэгэн зэрэг боловсруулах боломжийг олгосон.
  • Redis-cli хэрэгсэлд "-json", "-2", "-scan", "-functions-rdb" сонголтуудыг нэмсэн.
  • Анхдагч байдлаар, үйлчлүүлэгчийн аюулгүй байдалд нөлөөлөх тохиргоо болон командуудад хандах хандалтыг идэвхгүй болгосон (жишээлбэл, DEBUG болон MODULE командууд идэвхгүй, PROTECTED_CONFIG туг ашиглан тохиргоог өөрчлөхийг хориглодог). Redis-cli нь нууц өгөгдөл агуулсан командуудыг түүхийн файлд гаргахаа больсон.
  • Гүйцэтгэлийг нэмэгдүүлэх, санах ойн хэрэглээг багасгахад чиглэсэн оновчлолын ихэнх хэсгийг нэвтрүүлсэн. Жишээлбэл, кластер горимыг идэвхжүүлэх, бичих дээр хуулбарлах үйлдлүүдийг хийх, хэш болон zset товчлууруудтай ажиллах үед санах ойн зарцуулалтыг эрс багасгасан. Диск рүү өгөгдлийг угаах логикийг сайжруулсан (fsync дуудлага). Үйлчлүүлэгч рүү хариу илгээх үед сүлжээний багц болон системийн дуудлагын тоог бууруулсан. Хуулбарлах үр ашиг сайжирсан.
  • Lua скриптүүдийг ажиллуулах орчин дахь CVE-2022-24735-ийн эмзэг байдлыг зассан бөгөөд энэ нь танд өөрийн Lua кодыг орлуулж, өөр хэрэглэгчийн, түүний дотор илүү өндөр эрхтэй хэрэглэгчийн контекст дээр гүйцэтгэх боломжийг олгодог.
  • CVE-2022-24736 эмзэг байдлыг зассан бөгөөд энэ нь NULL заагч заагчаас болж redis-серверийн процессыг сүйрүүлэх боломжийг олгодог. Тусгайлан бүтээсэн Луа скриптүүдийг ачаалах замаар халдлага үйлддэг.

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

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