Phiên bản Redis 8.2, một hệ thống quản lý cơ sở dữ liệu NoSQL, đã được phát hành. Redis cung cấp các chức năng lưu trữ dữ liệu theo định dạng khóa/giá trị, được mở rộng bằng việc hỗ trợ các định dạng dữ liệu có cấu trúc như danh sách, hàm băm và tập hợp, cũng như khả năng thực thi các trình xử lý tập lệnh Lua ở phía máy chủ. Mã dự án được viết bằng C và được phân phối theo giấy phép AGPLv3.
Redis DBMS hỗ trợ các giao dịch cho phép bạn thực thi một nhóm lệnh trong một bước, đảm bảo tính nhất quán và nhất quán (các lệnh từ các yêu cầu khác không thể can thiệp) trong quá trình thực thi một nhóm lệnh nhất định và trong trường hợp có sự cố, cho phép bạn thực hiện những thay đổi trở lại. Tất cả dữ liệu được lưu trữ đầy đủ trong RAM. Thư viện máy khách có sẵn cho hầu hết các ngôn ngữ phổ biến, bao gồm Perl, Python, PHP, Java, Ruby và Tcl.
Các lệnh quản lý dữ liệu bao gồm tăng/giảm, các thao tác danh sách và tập hợp tiêu chuẩn (hợp, giao), đổi tên khóa, chọn nhiều mục và các chức năng sắp xếp. Có hai chế độ lưu trữ được hỗ trợ: đồng bộ hóa dữ liệu định kỳ vào đĩa và duy trì nhật ký thay đổi trên đĩa. Chế độ thứ hai đảm bảo bảo toàn hoàn toàn tất cả các thay đổi. Sao chép dữ liệu chủ-tớ trên nhiều phiên bản cũng có thể thực hiện được. may chủQuá trình này được thực hiện ở chế độ không chặn. Chế độ nhắn tin xuất bản/đăng ký cũng có sẵn, tạo ra một kênh từ đó các tin nhắn được phân phối đến các máy khách thông qua đăng ký.
Những thay đổi chính trong Redis 8.2:
- Hơn 70 lệnh đã được tối ưu hóa để chạy nhanh hơn so với Redis 8.0. Ví dụ, lệnh BITCOUNT hiện nhanh hơn 35%, trong khi các lệnh LINSERT, LREM và LPOS list nhanh hơn 25%. 17 lệnh được tối ưu hóa hiện nhanh hơn ít nhất 5% và 52 lệnh nhanh hơn ít nhất 2%.

- Mã nguồn đã được tối ưu hóa để xử lý các thao tác đồng thời và I/O đa luồng, cho phép tăng 49% số lượng thao tác được xử lý mỗi giây trong các thử nghiệm với 8 luồng I/O, phân bổ tải 20% yêu cầu ghi và 80% yêu cầu đọc. Trên một người phục vụ Đã vượt qua cột mốc 1 triệu thao tác được xử lý mỗi giây.

- Phương pháp lưu trữ dữ liệu theo định dạng khóa/giá trị đã được thay đổi cơ bản — giờ đây sử dụng cấu trúc kvobj thống nhất để lưu trữ, cho phép tên khóa, giá trị ngắn và vòng đời được đóng gói trong một khối bộ nhớ được phân bổ duy nhất và sử dụng một tham chiếu duy nhất đến cấu trúc này trong bảng băm, thay vì các tham chiếu riêng biệt đến khóa, dữ liệu và TTL. Khi lưu trữ các giá trị chuỗi ngắn, phương pháp lưu trữ mới đã giảm mức tiêu thụ bộ nhớ từ 25-37%.

- Đã thực hiện tối ưu hóa lưu trữ dữ liệu ở định dạng JSON, cho phép giảm mức tiêu thụ bộ nhớ từ 25-67% khi lưu trữ số nguyên và số dấu phẩy động.
- Cơ chế Streams dùng để xử lý và lưu trữ luồng tin nhắn đã được bổ sung các lệnh XACKDEL và XDELEX mới, giúp đơn giản hóa công việc với các luồng mà nhiều người nhận (nhóm người dùng) được kết nối. Các lệnh này giải quyết vấn đề xóa tin nhắn chỉ sau khi tất cả các trình xử lý xác nhận đã nhận được.
- Các toán tử logic mới DIFF, DIFF1, ANDOR và ONE đã được thêm vào lệnh BITOP, được thiết kế để thực hiện các phép toán bitwise.
- Đã thêm loại chỉ mục vectơ mới SVS-VAMANA, hỗ trợ nén vectơ.
- Đã thêm các số liệu mới: tải trên mỗi khe và phân phối kích thước khóa cho các kiểu dữ liệu cơ sở.
Nguồn: opennet.ru



