Valkey 8.1: Redis fork có hiệu suất, cải thiện bộ nhớ và các mô-đun mới

thung lũng

Nó đã được công bố phát hành phiên bản mới của «Valkey 8.1», một nhánh của Redis ra đời sau khi chuyển sang giấy phép độc quyền và muốn duy trì triết lý mở của dự án ban đầu.

Valkey 8.1 Nó có nhiều cải tiến và thay đổi, tập trung chủ yếu vào việc tối ưu hóa hiệu suất giúp giảm độ trễ, tăng hiệu quả bộ nhớ và khả năng mô-đun mới.

Các tính năng mới quan trọng trong Valkey 8.1

Uno của những thay đổi quan trọng nhất trong phiên bản này là viết lại hoàn toàn bảng băm, được sử dụng trong cả lưu trữ dữ liệu khóa-giá trị và các kiểu dữ liệu có cấu trúc như Hash, Set và Sorted Set. Nhờ thiết kế lại này, Đã đạt được mức giảm sử dụng bộ nhớ: ít hơn 20 byte cho mỗi khóa mà không cần TTL, và tối đa 30 byte nếu khóa có thời hạn sử dụng được xác định. Ngoài ra, việc giảm khả năng truy cập bộ nhớ ngẫu nhiên đã giúp cải thiện hiệu suất lên 10% trong môi trường I/O luồng đơn.

Một tính năng mới khác trong Valkey 8.1 là việc lặp lại các phím trong các thao tác như lệnh KEYS hoặc Việc chuyển giao khóa giữa các nút trong một cụm hiện có hệ thống tải trước bộ nhớ đệm, cho phép khóa tiếp theo có sẵn trước khi quá trình xử lý bắt đầu. Phương pháp này đã tăng tốc độ tra cứu khóa lên 3,5 lần bằng cách sử dụng bộ nhớ đệm của bộ xử lý tốt hơn.

Cải tiến I/O đa luồng và TLS

Valkey tiếp tục quá trình chuyển đổi sang mô hình I/O đa luồng. Bây giờ, Xử lý kết nối TLS được thực hiện trong các luồng riêng biệt, giúp tăng gấp ba khả năng chấp nhận kết nối mới. Các hàm như SSL_pending() và ERR_clear_error() cũng đã được phân tách thành các luồng riêng biệt, giúp tăng hiệu suất lên 10% cho các hoạt động SET và 22% cho các hoạt động GET.

Bản sao đã được cải thiện, đặc biệt là trong môi trường có TLS đang hoạt động, loại bỏ các hoạt động dư thừa như kiểm tra tổng không cần thiết. Điều này đã cải thiện 18% khả năng đồng bộ hóa hoàn toàn trong quá trình sao chép không cần đĩa và giảm 47% chi phí cho các hoạt động sao chép và ghi.

Tối ưu hóa trên các tập hợp có thứ tự và các loại xác suất

El Lệnh ZRANK đối với các tập hợp được sắp xếp đã được tối ưu hóa và Hiện tại nó nhanh hơn 45%, trong khi ZADD đã áp dụng hướng dẫn SIMD để đạt được hiệu quả cao hơn. Đối với các kiểu dữ liệu xác suất, việc sử dụng HyperLogLog đã được cải thiện để chỉ sử dụng 12 KB bộ nhớ cố định và việc sử dụng lệnh AVX2 đã cho phép tăng hiệu suất của các hoạt động PFMERGE và PFCOUNT lên tới 12 lần và BITCOUNT lên tới 5 lần.

Chống phân mảnh chủ động không bị gián đoạn và kiểm soát nhiều hơn đối với sổ đăng ký

El hệ thống chống phân mảnh chủ động cũng đã được cải thiện để tránh tắc nghẽn hoặc chậm trễ. Bây giờ, mỗi chu kỳ chống phân mảnh chỉ kéo dài 500 micro giây, và một chiến lược chống nạn đói đã được thực hiện để ngăn chặn các nhiệm vụ này bị trì hoãn do các hoạt động dài hạn.

Đã được giới thiệu Tùy chọn cấu hình mới cho định dạng bản ghi, bao gồm định dạng thời gian tùy chỉnh và chế độ COMMANDLOG mới ghi lại các yêu cầu và phản hồi dài. Ngoài ra, lệnh LATENCY LATEST đã được mở rộng với các số liệu mới, cung cấp khả năng hiển thị tốt hơn về độ trễ đỉnh và độ trễ khối lượng được ghi lại.

Các tính năng, mô-đun và hỗ trợ mới

thung lũng bây giờ cho phép bạn thực hiện thao tác SET IFEQ, điều kiện để ghi khóa vào giá trị hiện tại. Cũng Hỗ trợ mô-đun cho các công cụ tập lệnh được giới thiệu, mở ra khả năng sử dụng các ngôn ngữ thay thế cho Lua thông qua các mô-đun tùy chỉnh.

Trong phiên bản này cũng một số mô-đun ra mắt:

  • Mô-đun tìm kiếm (Google): Công cụ tìm kiếm độ tương đồng vectơ, lý tưởng cho các trường hợp học máy đòi hỏi độ trễ thấp và thông lượng cao.
  • Mô-đun JSON (AWS): cho phép thao tác trực tiếp các đoạn tài liệu JSON, tránh xử lý toàn bộ nội dung trên máy khách.
  • Mô-đun bộ lọc Bloom (AWS): Triển khai bộ lọc Bloom, hữu ích để xác định tư cách thành viên có thể có của một phần tử trong một tập hợp, với hiệu quả xác suất

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết tại mục liên kết theo dõi.