Keluaran Redis 7.0 DBMS

Keluaran DBMS Redis 7.0, yang tergolong dalam kelas sistem NoSQL, telah diterbitkan. Redis menyediakan fungsi untuk menyimpan data kunci/nilai, dipertingkatkan dengan sokongan untuk format data berstruktur seperti senarai, cincang dan set, serta keupayaan untuk menjalankan pengendali skrip sebelah pelayan dalam Lua. Kod projek dibekalkan di bawah lesen BSD. Modul tambahan yang menawarkan keupayaan lanjutan untuk pengguna korporat, seperti RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, telah dibekalkan di bawah lesen RSAL proprietari sejak 2019. Projek GoodFORM, yang baru-baru ini tidak berkembang, cuba meneruskan pembangunan versi terbuka modul ini di bawah lesen AGPLv3.

Tidak seperti sistem storan dalam memori seperti Memcached, Redis memastikan data disimpan secara berterusan pada cakera dan memastikan pangkalan data kekal utuh sekiranya berlaku ranap sistem. Kod sumber projek diedarkan di bawah lesen BSD. Pustaka pelanggan tersedia untuk kebanyakan bahasa popular, termasuk Perl, Python, PHP, Java, Ruby dan Tcl. Redis menyokong urus niaga, yang membolehkan anda melaksanakan sekumpulan perintah dalam satu langkah, memastikan konsistensi dan konsistensi (arahan daripada permintaan lain tidak boleh campur tangan) dalam pelaksanaan set arahan yang diberikan, dan sekiranya berlaku masalah, membolehkan anda berpatah balik perubahan. Semua data dicache sepenuhnya dalam RAM.

Perintah seperti kenaikan/pengurangan, senarai standard dan operasi set (kesatuan, persimpangan), penamaan semula kunci, berbilang pilihan dan fungsi pengisihan disediakan untuk pengurusan data. Dua mod storan disokong: penyegerakan berkala data ke cakera dan penyelenggaraan log perubahan pada cakera. Dalam kes kedua, keselamatan lengkap semua perubahan terjamin. Ia adalah mungkin untuk mengatur replikasi data tuan-hamba ke beberapa pelayan, dijalankan dalam mod tidak menyekat. Mod pemesejan "terbitkan/langgan" juga tersedia, di mana saluran dibuat, mesej daripadanya diedarkan kepada pelanggan melalui langganan.

Perubahan utama dalam Redis 7.0:

  • Menambah sokongan untuk fungsi bahagian pelayan. Tidak seperti skrip yang disokong sebelum ini dalam bahasa Lua, fungsi tidak terikat pada aplikasi dan bertujuan untuk melaksanakan logik tambahan yang mengembangkan keupayaan pelayan. Fungsi diproses secara tidak terpisahkan dengan data dan berhubung dengan pangkalan data, dan bukan dengan aplikasi, termasuk direplikasi dan disimpan dalam storan berterusan.
  • Edisi kedua ACL telah dicadangkan, yang membolehkan anda mengawal akses kepada data berdasarkan kekunci dan membolehkan anda menentukan set peraturan yang berbeza untuk mengakses arahan dengan keupayaan untuk mengikat beberapa pemilih (set kebenaran) kepada setiap pengguna. Setiap kunci boleh dikenal pasti dengan pihak berkuasa tertentu, contohnya, anda boleh mengehadkan akses kepada hanya membaca atau menulis subset kunci tertentu.
  • Pelaksanaan pembahagian (berpecah) bagi paradigma pengedaran mesej Terbit-Langgan yang berjalan dalam kelompok disediakan, di mana mesej dihantar ke nod tertentu yang mana saluran mesej dilampirkan, selepas itu mesej ini diubah hala ke baki nod yang disertakan dalam serpihan. Pelanggan boleh menerima mesej dengan melanggan saluran, kedua-duanya dengan menyambung ke nod utama dan ke nod sekunder bahagian tersebut. Kawalan dilakukan menggunakan arahan SSUBSCRIBE, SUNSUBSCRIBE dan SPUBLISH.
  • Menambah sokongan untuk memproses subperintah dalam kebanyakan konteks.
  • Perintah baharu ditambah:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNGSI *, FCALL, FCALL_RO.
    • DOKUMEN PERINTAH, SENARAI PERINTAH.
    • HISTOGRAM LENGKAP.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • PELANGGAN TIADA PENGHANTARAN.
    • ACL DRYRUN.
  • Keupayaan untuk memproses berbilang konfigurasi sekaligus dalam satu SET KONFIG/GET panggilan telah disediakan.
  • Pilihan β€œ-json”, β€œ-2”, β€œ-scan”, β€œ-functions-rdb” telah ditambahkan pada utiliti redis-cli.
  • Secara lalai, akses klien kepada tetapan dan perintah yang menjejaskan keselamatan dinyahdayakan (contohnya, arahan DEBUG dan MODULE dinyahdayakan, menukar konfigurasi dengan bendera PROTEKSI_CONFIG adalah dilarang). Redis-cli tidak lagi mengeluarkan arahan yang mengandungi data sensitif kepada fail sejarah.
  • Sebahagian besar pengoptimuman telah diperkenalkan bertujuan untuk meningkatkan prestasi dan mengurangkan penggunaan memori. Sebagai contoh, penggunaan memori telah dikurangkan dengan ketara apabila mendayakan mod kluster, semasa menjalankan operasi salin atas tulis dan apabila bekerja dengan cincang dan kekunci zset. Logik yang lebih baik untuk mengepam data ke cakera (panggilan fsync). Bilangan paket rangkaian dan panggilan sistem semasa menghantar respons kepada pelanggan telah dikurangkan. Kecekapan replikasi telah dipertingkatkan.
  • Kerentanan CVE-2022-24735 dalam persekitaran untuk melaksanakan skrip Lua telah diperbaiki, yang membolehkan anda menggantikan kod Lua anda sendiri dan mencapai pelaksanaannya dalam konteks pengguna lain, termasuk yang mempunyai keistimewaan yang lebih tinggi.
  • Kerentanan tetap CVE-2022-24736, yang membenarkan proses pelayan-semula ranap disebabkan penyahrujukan penunjuk NULL. Serangan dilakukan melalui pemuatan skrip Lua yang direka khas.

Sumber: opennet.ru

Tambah komen