Redis 6.0 DBMSning chiqarilishi

Tayyorlangan DBMS chiqarilishi Redis 6.0, NoSQL tizimlari sinfiga mansub. Redis ro'yxatlar, xeshlar va to'plamlar kabi tuzilgan ma'lumotlar formatlarini qo'llab-quvvatlash va server tomonidagi Lua ishlov beruvchi skriptlarini ishga tushirish qobiliyati bilan takomillashtirilgan kalit/qiymat ma'lumotlarini saqlash uchun Memcached-ga o'xshash funktsiyalarni taqdim etadi. Loyiha kodi ta'minlangan BSD litsenziyasi ostida. O'tgan yildan beri RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom kabi korporativ foydalanuvchilar uchun ilg'or imkoniyatlarni taklif qiluvchi qo'shimcha modullar ta'minlangan xususiy RSAL litsenziyasi ostida. AGPLv3 litsenziyasi ostida ushbu modullarning ochiq versiyalarini ishlab chiqish loyiha tomonidan davom ettirilmoqda Yaxshi FORM.

Memcached-dan farqli o'laroq, Redis diskda ma'lumotlarni doimiy saqlashni ta'minlaydi va favqulodda o'chirilgan taqdirda ma'lumotlar bazasi xavfsizligini kafolatlaydi. 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'plamini bajarishda 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 uchun oshirish/kamaytirish, standart ro'yxat va to'plam operatsiyalari (birlashma, kesishish), kalitlarning nomini o'zgartirish, bir nechta tanlash va saralash funktsiyalari kabi buyruqlar taqdim etiladi. Ikkita saqlash rejimi qo'llab-quvvatlanadi: ma'lumotlarni diskka davriy sinxronlashtirish va diskdagi o'zgarishlar jurnalini saqlash. Ikkinchi holda, barcha o'zgarishlarning to'liq xavfsizligi kafolatlanadi. Bloklanmagan rejimda amalga oshiriladigan bir nechta serverlarga master-slave ma'lumotlar replikatsiyasini tashkil qilish mumkin. "Nashr qilish/obuna bo'lish" xabar almashish rejimi ham mavjud bo'lib, unda kanal yaratiladi, xabarlar obuna bo'yicha mijozlarga tarqatiladi.

Kalit yaxshilanishlarRedis 6.0 da qo'shilgan:

  • Odatiy bo'lib, yangi RESP3 protokoli taklif etiladi, lekin ulanishni sozlash RESP2 rejimida boshlanadi va mijoz faqat ulanishni muhokama qilishda yangi HELLO buyrug'i ishlatilsa, yangi protokolga o'tadi. RESP3 mijoz tomonida umumiy massivlarni konvertatsiya qilmasdan va qaytarish turlarini ajratish orqali murakkab ma'lumotlar turlarini to'g'ridan-to'g'ri qaytarish imkonini beradi.
  • Kirish nazorati ro'yxatini qo'llab-quvvatlash (ACL), mijoz tomonidan qaysi operatsiyalarni bajarishi va qaysi biri bajarilmasligini aniq aniqlash imkonini beradi. ACLlar, shuningdek, ishlab chiqish jarayonida yuzaga kelishi mumkin bo'lgan xatolardan himoya qilish imkonini beradi, masalan, faqat BRPOPLPUSH operatsiyasini bajaradigan ishlov beruvchiga boshqa operatsiyalarni bajarish taqiqlanishi mumkin va agar disk raskadrovka paytida qo'shilgan FLUSHALL chaqiruvi ishlab chiqarish kodida tasodifan unutilgan bo'lsa, bu muammolarga olib kelmaydi. ACLni amalga oshirish qo'shimcha xarajatlarni talab qilmaydi va ishlashga deyarli ta'sir qilmaydi. ACL uchun interfeys modullari ham tayyorlangan, bu esa o'z autentifikatsiya usullarini yaratish imkonini beradi. Barcha qayd etilgan ACL buzilishlarini ko'rish uchun "ACL LOG" buyrug'i taqdim etiladi. Kutilmagan seans kalitlarini yaratish uchun SHA256 asosidagi HMAC yordamida "ACL GENPASS" buyrug'i qo'shildi.
  • qo'llab-quvvatlash SSL / TLS mijoz va server o'rtasidagi aloqa kanalini shifrlash uchun.
  • qo'llab-quvvatlash mijoz tomonida ma'lumotlarni keshlash. Mijoz keshini ma'lumotlar bazasi holati bilan moslashtirish uchun ikkita rejim mavjud: 1. Mijoz keshidagi yozuvning ahamiyatini yo'qotganligi to'g'risida xabardor qilish uchun mijoz avval so'ragan kalitlarni serverda eslab qolish. 2. Mijoz ma'lum kalit prefikslariga obuna bo'lgan va ushbu prefikslar ostidagi kalitlar o'zgargan taqdirda server uni xabardor qiladigan "efir" mexanizmi. "Eshittirish" rejimining afzalligi shundaki, server mijoz tomonida keshlangan qiymatlar xaritasini saqlash uchun qo'shimcha xotirani behuda sarflamaydi, ammo kamchilik shundaki, uzatiladigan xabarlar soni ortadi.
  • Xabar navbatlarini qayta ishlash uchun Redis-dan foydalanish imkonini beruvchi Disque xabar brokeri asosiy tuzilmadan olib tashlandi. alohida modul.
  • Qo'shilgan Klaster proksi, Redis serverlari klasteri uchun proksi-server, mijozga bir nechta Redis serverlari bilan xuddi bitta misol kabi ishni tashkil qilish imkonini beradi. Proksi-server so'rovlarni kerakli ma'lumotlarga ega bo'lgan tugunlarga yo'naltirishi, multipleks ulanishlari, tugunlarda nosozliklar aniqlansa, klasterni qayta sozlashi va bir nechta tugunlarni qamrab oluvchi so'rovlarni bajarishi mumkin.
  • Modullarni yozish uchun API sezilarli darajada yaxshilandi, bu Redisni qo'shimcha modullar ko'rinishidagi tizimlarni yaratishga imkon beruvchi ramkaga aylantirdi.
  • Replikatsiya rejimi joriy etildi, unda RDB fayllari ishlatilgandan so'ng darhol o'chiriladi.
  • PSYNC2 replikatsiya protokoli takomillashtirildi, bu replika va master uchun umumiy ofsetlarni aniqlash imkoniyatlarini oshirish orqali qisman qayta sinxronlashni tez-tez bajarish imkonini berdi.
  • RDB fayllarini yuklash tezlashtirildi. Fayl tarkibiga qarab, tezlashuv 20 dan 30% gacha. Ulangan mijozlar soni ko'p bo'lganda INFO buyrug'ining bajarilishi sezilarli darajada tezlashdi.
  • Murakkab satrlarni qayta ishlash algoritmlarini amalga oshirish bilan yangi STRALGO buyrug'i qo'shildi. Hozirgi vaqtda RNK va DNK ketma-ketliklarini solishtirishda foydali bo'lishi mumkin bo'lgan faqat bitta LCS (eng uzun umumiy pastki ketma-ketlik) algoritmi mavjud.

Manba: opennet.ru

a Izoh qo'shish