Redis 7.0 DBMSning chiqarilishi

NoSQL tizimlari sinfiga kiruvchi Redis 7.0 DBMS ning chiqarilishi chop etildi. Redis ro'yxatlar, xeshlar va to'plamlar kabi tuzilgan ma'lumotlar formatlarini qo'llab-quvvatlash, shuningdek Lua'da server tomonidagi skript ishlov beruvchilarini ishga tushirish qobiliyati bilan takomillashtirilgan kalit/qiymat ma'lumotlarini saqlash funktsiyalarini taqdim etadi. Loyiha kodi BSD litsenziyasi ostida taqdim etiladi. RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom kabi korporativ foydalanuvchilar uchun ilg‘or imkoniyatlarni taklif qiluvchi qo‘shimcha modullar 2019-yildan beri xususiy RSAL litsenziyasi ostida yetkazib berilgan. Yaqinda to'xtab qolgan GoodFORM loyihasi AGPLv3 litsenziyasi ostida ushbu modullarning ochiq versiyalarini ishlab chiqishni davom ettirishga harakat qildi.

Memcached kabi xotiradagi saqlash tizimlaridan farqli o'laroq, Redis ma'lumotlarning doimiy ravishda diskda saqlanishini ta'minlaydi va avariya sodir bo'lgan taqdirda ma'lumotlar bazasi o'zgarmasligini ta'minlaydi. Loyihaning manba kodi BSD litsenziyasi ostida tarqatiladi. Mijoz kutubxonalari eng mashhur tillar, jumladan Perl, Python, PHP, Java, Ruby va Tcl uchun mavjud. Redis bir bosqichda buyruqlar guruhini bajarishga imkon beruvchi tranzaktsiyalarni qo'llab-quvvatlaydi, berilgan buyruqlar to'plamining bajarilishida izchillik va izchillikni ta'minlaydi (boshqa so'rovlardan olingan buyruqlar xalaqit bermaydi) va muammolar yuzaga kelganda, orqaga qaytishga imkon beradi. o'zgarishlar. Barcha ma'lumotlar RAMda to'liq keshlangan.

Ma'lumotlarni boshqarish buyruqlari o'sish/kamaytirish, standart ro'yxat va to'plam operatsiyalari (birlashma, kesishma), kalitlarni qayta nomlash, bir nechta tanlovlar va saralash funktsiyalarini o'z ichiga oladi. Ikkita saqlash rejimi qo'llab-quvvatlanadi: diskka davriy ma'lumotlarni sinxronlashtirish va diskda o'zgarishlar jurnalini yuritish. Ikkinchisi barcha o'zgarishlarning to'liq saqlanishini kafolatlaydi. Bir nechta misollarda master-slave ma'lumotlarini replikatsiya qilish ham mumkin. serverlar, bloklanmagan rejimda amalga oshiriladi. Nashr qilish/obuna bo'lish xabar almashish rejimi ham mavjud bo'lib, u xabarlarni mijozlarga obuna orqali tarqatish kanalini yaratadi.

Redis 7.0 dagi asosiy o'zgarishlar:

  • Yon tomonda bajariladigan funksiyalar uchun qo'llab-quvvatlash qo'shildi serverIlgari qo'llab-quvvatlangan Lua skriptlaridan farqli o'laroq, funksiyalar dasturga xos emas va server imkoniyatlarini kengaytiradigan qo'shimcha mantiqni amalga oshirish uchun mo'ljallangan. Funksiyalar ma'lumotlar bilan uzluksiz qayta ishlanadi va dasturga emas, balki ma'lumotlar bazasiga bog'lanadi hamda takrorlanadi va doimiy xotirada saqlanadi.
  • ACL ning ikkinchi nashri taklif qilindi, bu sizga kalitlar asosida ma'lumotlarga kirishni boshqarish imkonini beradi va har bir foydalanuvchi uchun bir nechta selektorlarni (ruxsatlar to'plamini) bog'lash imkoniyati bilan buyruqlarga kirish uchun turli xil qoidalar to'plamini aniqlash imkonini beradi. Har bir kalit ma'lum bir vakolat bilan aniqlanishi mumkin, masalan, kirishni faqat ma'lum bir kichik to'plamni o'qish yoki yozishni cheklashingiz mumkin.
  • Klasterda ishlaydigan nashr etish-obuna bo'lish xabarlarini tarqatish paradigmasining bo'lingan (parchalangan) amalga oshirilishi ta'minlangan, unda xabar xabar kanali biriktirilgan ma'lum bir tugunga yuboriladi, shundan so'ng bu xabar qolgan tugunlarga yo'naltiriladi. parchada. Mijozlar kanalga obuna bo'lish orqali, ham asosiy tugunga, ham bo'limning ikkilamchi tugunlariga ulanish orqali xabarlarni qabul qilishlari mumkin. Boshqarish SUNSCRIBE, SUNSUBSCRIBE va SPUBLISH buyruqlari yordamida amalga oshiriladi.
  • Ko'pgina kontekstlarda kichik buyruqlarni qayta ishlash uchun qo'shimcha yordam.
  • Yangi buyruqlar qo'shildi:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • YARATING, OBUNA BO'LING, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • BUYRUQ Xujjatlari, BUYRUQLAR RO'YXATI.
    • KECHIRGANLIK HISTOGRAMI.
    • KLASTER SHARDS, KLASTER HALOQALARI, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • MIJOLAR KO'CHIRILMAYDI.
    • ACL DRYRUN.
  • Bitta CONFIG SET/GET qo'ng'irog'ida bir vaqtning o'zida bir nechta konfiguratsiyalarni qayta ishlash imkoniyati taqdim etilgan.
  • Redis-cli yordam dasturiga "-json", "-2", "-scan", "-functions-rdb" opsiyalari qo'shildi.
  • Odatiy bo'lib, mijozning xavfsizlikka ta'sir qiluvchi sozlamalar va buyruqlarga kirishi o'chirilgan (masalan, DEBUG va MODULE buyruqlari o'chirilgan, PROTECTED_CONFIG bayrog'i bilan konfiguratsiyalarni o'zgartirish taqiqlangan). Redis-cli endi maxfiy ma'lumotlarni o'z ichiga olgan buyruqlarni tarix fayliga chiqarmaydi.
  • Optimallashtirishning katta qismi unumdorlikni oshirish va xotira sarfini kamaytirishga qaratilgan. Masalan, klaster rejimini yoqishda, yozishda nusxa ko'chirish operatsiyalarini bajarishda va xeshlar va zset tugmachalari bilan ishlashda xotira sarfi sezilarli darajada kamaydi. Diskka ma'lumotlarni o'chirish uchun mantiqiy takomillashtirilgan (fsync chaqiruvi). Mijozga javob yuborishda tarmoq paketlari va tizim qo'ng'iroqlari soni kamaydi. Replikatsiya samaradorligi yaxshilandi.
  • Lua skriptlarini bajarish muhitidagi CVE-2022-24735 zaifligi tuzatildi, bu sizga o'z Lua kodingizni almashtirish va uni boshqa foydalanuvchi, jumladan, yuqori imtiyozlarga ega bo'lgan foydalanuvchi kontekstida bajarishga erishish imkonini beradi.
  • Ruxsat etilgan zaiflik CVE-2022-24736, bu redis-server jarayonining NULL ko'rsatgichga murojaat qilishi sababli ishdan chiqishiga imkon beradi. Hujum maxsus ishlab chiqilgan Lua skriptlarini yuklash orqali amalga oshiriladi.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster