Phát hành Redis 6.0 DBMS

Chuẩn bị Phát hành DBMS làm lại 6.0, thuộc lớp hệ thống NoSQL. Redis cung cấp các hàm giống Memcached để lưu trữ dữ liệu khóa/giá trị, được tăng cường bằng cách hỗ trợ các định dạng dữ liệu có cấu trúc như danh sách, hàm băm và bộ cũng như khả năng chạy các tập lệnh xử lý Lua phía máy chủ. Mã số dự án cung cấp theo giấy phép BSD. Các mô-đun bổ sung cung cấp các khả năng nâng cao cho người dùng doanh nghiệp như RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom kể từ năm ngoái cung cấp theo giấy phép RSAL độc quyền. Dự án tiếp tục phát triển các phiên bản mở của các mô-đun này theo giấy phép AGPLv3 TốtFORM.

Không giống như Memcached, Redis cung cấp khả năng lưu trữ dữ liệu liên tục trên đĩa và đảm bảo an toàn cho cơ sở dữ liệu trong trường hợp tắt khẩn cấp. Mã nguồn của dự án được phân phối theo giấy phép BSD. 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. Redis 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 quay lại những thay đổi. Tất cả dữ liệu được lưu trữ đầy đủ trong RAM.

Các lệnh như tăng/giảm, danh sách tiêu chuẩn và các thao tác tập hợp (kết hợp, giao nhau), đổi tên khóa, nhiều lựa chọn và chức năng sắp xếp được cung cấp để quản lý dữ liệu. 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. Trong trường hợp thứ hai, sự an toàn hoàn toàn của tất cả các thay đổi được đảm bảo. Có thể tổ chức sao chép dữ liệu chủ-nô lệ đến một số máy chủ, đượ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, trong đó một kênh được tạo, các tin nhắn từ đó được phân phối đến khách hàng bằng cách đăng ký.

Chìa khóa cải tiếnđã thêm vào Redis 6.0:

  • Theo mặc định, giao thức RESP3 mới được đề xuất, nhưng thiết lập kết nối bắt đầu ở chế độ RESP2 và máy khách chỉ chuyển sang giao thức mới nếu lệnh HELLO mới được sử dụng khi đàm phán kết nối. RESP3 cho phép bạn trả về trực tiếp các kiểu dữ liệu phức tạp mà không cần chuyển đổi các mảng chung ở phía máy khách và bằng cách tách các kiểu trả về.
  • Hỗ trợ danh sách kiểm soát truy cập (ACL), cho phép bạn xác định chính xác những thao tác nào máy khách có thể thực hiện và thao tác nào không thể. ACL cũng giúp bảo vệ khỏi các lỗi có thể xảy ra trong quá trình phát triển, ví dụ: trình xử lý chỉ thực hiện thao tác BRPOPLPUSH có thể bị cấm thực thi các hoạt động khác và nếu lệnh gọi FLUSHALL được thêm vào trong quá trình gỡ lỗi vô tình bị quên trong mã sản xuất, điều này sẽ không dẫn đến vấn đề. Việc triển khai ACL không phát sinh thêm bất kỳ chi phí nào và hầu như không ảnh hưởng đến hiệu suất. Các mô-đun giao diện cũng đã được chuẩn bị cho ACL, giúp bạn có thể tạo các phương thức xác thực của riêng mình. Để xem tất cả các vi phạm ACL được ghi lại, lệnh “ACL LOG” được cung cấp. Để tạo các khóa phiên không thể đoán trước, lệnh "ACL GENPASS" đã được thêm bằng HMAC dựa trên SHA256.
  • Hỗ trợ SSL / TLS để mã hóa kênh liên lạc giữa máy khách và máy chủ.
  • Hỗ trợ lưu trữ dữ liệu ở phía máy khách. Để điều chỉnh bộ đệm phía máy khách với trạng thái của cơ sở dữ liệu, có hai chế độ: 1. Ghi nhớ trên máy chủ các khóa mà máy khách đã yêu cầu trước đó để thông báo về việc mất mục liên quan trong bộ đệm của máy khách. 2. Cơ chế “phát sóng”, trong đó máy khách đăng ký một số tiền tố khóa nhất định và máy chủ sẽ thông báo cho nó nếu các khóa thuộc các tiền tố này thay đổi. Ưu điểm của chế độ "phát sóng" là máy chủ không lãng phí bộ nhớ bổ sung để lưu trữ bản đồ các giá trị được lưu trong bộ nhớ đệm ở phía máy khách, nhưng nhược điểm là số lượng tin nhắn được truyền đi tăng lên.
  • Trình môi giới tin nhắn Disque, cho phép bạn sử dụng Redis để xử lý hàng đợi tin nhắn, đã bị xóa khỏi cấu trúc cơ bản trong mô-đun riêng biệt.
  • Thêm Proxy cụm, một proxy cho một cụm máy chủ Redis, cho phép khách hàng sắp xếp công việc với một số máy chủ Redis như thể chúng là một phiên bản duy nhất. Proxy có thể định tuyến các yêu cầu đến các nút có dữ liệu cần thiết, kết nối ghép kênh, cấu hình lại cụm nếu phát hiện lỗi nút và thực hiện các yêu cầu trải rộng trên nhiều nút.
  • API để viết mô-đun đã được cải thiện đáng kể, về cơ bản biến Redis thành một khung cho phép bạn tạo hệ thống dưới dạng mô-đun bổ trợ.
  • Chế độ sao chép đã được triển khai trong đó các tệp RDB sẽ bị xóa ngay lập tức sau khi chúng được sử dụng.
  • Giao thức sao chép PSYNC2 đã được cải tiến, giúp thực hiện đồng bộ lại một phần thường xuyên hơn, bằng cách tăng cơ hội xác định các điểm lệch chung cho bản sao và bản gốc.
  • Tải các tệp RDB đã được tăng tốc. Tùy thuộc vào nội dung tệp, khả năng tăng tốc dao động từ 20 đến 30%. Việc thực thi lệnh INFO đã được tăng tốc đáng kể khi có một số lượng lớn máy khách được kết nối.
  • Lệnh STRALGO mới đã được thêm vào cùng với việc triển khai các thuật toán xử lý chuỗi phức tạp. Hiện tại, chỉ có một thuật toán LCS (chuỗi chung dài nhất), thuật toán này có thể hữu ích khi so sánh trình tự RNA và DNA.

Nguồn: opennet.ru

Thêm một lời nhận xét