Rilis DBMS Redis 6.0

Siap rilis DBMS ulang 6.0, termasuk dalam kelas sistem NoSQL. Redis menyediakan fungsi seperti Memcached untuk menyimpan data kunci/nilai, ditingkatkan dengan dukungan untuk format data terstruktur seperti daftar, hash, dan set, dan kemampuan untuk menjalankan skrip pengendali Lua sisi server. Kode proyek disediakan di bawah lisensi BSD. Modul tambahan yang menawarkan kemampuan tingkat lanjut untuk pengguna perusahaan seperti RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom sejak tahun lalu dipasok di bawah lisensi RSAL milik. Pengembangan versi terbuka modul-modul ini di bawah lisensi AGPLv3 dilanjutkan oleh proyek BENTUK YANG BAGUS.

Tidak seperti Memcached, Redis menyediakan penyimpanan data yang persisten pada disk dan menjamin keamanan database jika terjadi pemadaman darurat. Kode sumber proyek didistribusikan di bawah lisensi BSD. Pustaka klien tersedia untuk sebagian besar bahasa populer, termasuk Perl, Python, PHP, Java, Ruby, dan Tcl. Redis mendukung transaksi, yang memungkinkan Anda menjalankan sekelompok perintah dalam satu langkah, memastikan konsistensi dan konsistensi (perintah dari permintaan lain tidak dapat mengganggu) dalam pelaksanaan serangkaian perintah tertentu, dan jika terjadi masalah, memungkinkan Anda untuk memutar kembali perubahan. Semua data sepenuhnya di-cache di RAM.

Perintah seperti penambahan/penurunan, operasi daftar dan himpunan standar (penyatuan, persimpangan), penggantian nama kunci, pilihan ganda, dan fungsi pengurutan disediakan untuk manajemen data. Dua mode penyimpanan didukung: sinkronisasi data secara berkala ke disk dan pemeliharaan log perubahan pada disk. Dalam kasus kedua, keamanan penuh dari semua perubahan dijamin. Dimungkinkan untuk mengatur replikasi data master-slave ke beberapa server, yang dilakukan dalam mode non-pemblokiran. Mode pesan β€œterbitkan/berlangganan” juga tersedia, di mana saluran dibuat, pesan-pesan yang didistribusikan ke klien dengan berlangganan.

Kunci perbaikanditambahkan di Redis 6.0:

  • Secara default, protokol RESP3 baru diusulkan, tetapi pengaturan koneksi dimulai dalam mode RESP2 dan klien beralih ke protokol baru hanya jika perintah HELLO baru digunakan saat menegosiasikan koneksi. RESP3 memungkinkan Anda mengembalikan tipe data kompleks secara langsung tanpa perlu mengonversi array generik di sisi klien dan dengan memisahkan tipe kembalian.
  • Dukungan daftar kontrol akses (ACL), memungkinkan Anda menentukan secara akurat operasi mana yang dapat dilakukan oleh klien dan mana yang tidak. ACL juga memungkinkan untuk melindungi terhadap kemungkinan kesalahan selama pengembangan, misalnya, handler yang hanya melakukan operasi BRPOPLPUSH dapat dilarang menjalankan operasi lain, dan jika panggilan FLUSHALL yang ditambahkan selama debugging secara tidak sengaja terlupa dalam kode produksi, ini akan terjadi tidak menimbulkan masalah. Menerapkan ACL tidak menimbulkan overhead tambahan dan hampir tidak berdampak pada kinerja. Modul antarmuka juga telah disiapkan untuk ACL, sehingga memungkinkan untuk membuat metode otentikasi Anda sendiri. Untuk melihat semua pelanggaran ACL yang tercatat, perintah β€œACL LOG” disediakan. Untuk menghasilkan kunci sesi yang tidak dapat diprediksi, perintah "ACL GENPASS" telah ditambahkan menggunakan HMAC berbasis SHA256.
  • Dukungan SSL / TLS untuk mengenkripsi saluran komunikasi antara klien dan server.
  • Dukungan menyimpan data di sisi klien. Untuk merekonsiliasi cache sisi klien dengan keadaan database, tersedia dua mode: 1. Mengingat di server kunci yang sebelumnya diminta klien untuk menginformasikannya tentang hilangnya relevansi entri dalam cache klien. 2. Mekanisme β€œpenyiaran”, di mana klien berlangganan awalan kunci tertentu dan server memberi tahu jika kunci yang termasuk dalam awalan ini berubah. Keuntungan dari mode "penyiaran" adalah server tidak menyia-nyiakan memori tambahan untuk menyimpan peta nilai yang di-cache di sisi klien, namun kelemahannya adalah jumlah pesan yang dikirimkan meningkat.
  • Broker pesan Disque, yang memungkinkan Anda menggunakan Redis untuk memproses antrian pesan, telah dihapus dari struktur dasar di modul terpisah.
  • Ditambahkan Proksi Klaster, proksi untuk sekelompok server Redis, yang memungkinkan klien mengatur pekerjaan dengan beberapa server Redis seolah-olah mereka adalah satu instance. Proksi dapat merutekan permintaan ke node dengan data yang diperlukan, koneksi multipleks, mengkonfigurasi ulang cluster jika kegagalan node terdeteksi, dan mengeksekusi permintaan yang menjangkau beberapa node.
  • API untuk menulis modul telah ditingkatkan secara signifikan, yang pada dasarnya mengubah Redis menjadi kerangka kerja yang memungkinkan Anda membuat sistem dalam bentuk modul tambahan.
  • Mode replikasi telah diterapkan di mana file RDB segera dihapus setelah digunakan.
  • Protokol replikasi PSYNC2 telah ditingkatkan, yang memungkinkan untuk melakukan sinkronisasi ulang parsial lebih sering, dengan meningkatkan kemungkinan mengidentifikasi offset yang umum pada replika dan master.
  • Memuat file RDB telah dipercepat. Tergantung pada konten file, akselerasinya berkisar antara 20 hingga 30%. Eksekusi perintah INFO telah dipercepat secara signifikan ketika ada banyak klien yang terhubung.
  • Perintah STRALGO baru telah ditambahkan dengan penerapan algoritma pemrosesan string yang kompleks. Saat ini, hanya tersedia satu algoritma LCS (longest common subsequence), yang dapat berguna saat membandingkan urutan RNA dan DNA.

Sumber: opennet.ru

Tambah komentar