Một giải pháp cache mới có tên Pogocache đã ra mắt, hứa hẹn độ trễ cực thấp và hiệu quả cao cho các ứng dụng yêu cầu truy cập dữ liệu nhanh. Dự án này đến từ Josh Tidwall , người cũng được biết đến với việc tạo ra các công cụ mã nguồn mở đáng chú ý khác như Tile38 và gói gjson Go .
![]() |
---|
Trang kho lưu trữ GitHub của Pogocache, nơi các nhà phát triển có thể tìm thấy thông tin và tài nguyên liên quan đến giải pháp bộ nhớ đệm mới này |
Hỗ Trợ Đa Giao Thức Tạo Nên Sự Khác Biệt
Điều khiến Pogocache đặc biệt thú vị là khả năng làm việc với nhiều giao thức cùng lúc. Người dùng có thể kết nối bằng các yêu cầu HTTP , lệnh Redis , hoặc thậm chí kết nối client PostgreSQL đến cùng một instance cache. Tính linh hoạt này có nghĩa là các nhà phát triển không cần thay đổi mã client hiện có hoặc học API mới - họ có thể sử dụng bất kỳ giao thức nào mà họ đã quen thuộc.
Cách tiếp cận đa giao thức cũng mở ra một số khả năng sáng tạo. Ví dụ, một ứng dụng web có thể sử dụng các cuộc gọi HTTP trong khi dịch vụ backend sử dụng lệnh Redis , tất cả đều truy cập vào cùng dữ liệu được cache.
Các Giao Thức Được Hỗ Trợ:
- HTTP 1.1 với các endpoint theo phong cách REST
- Các lệnh giao thức Redis (set, get, delete, incr, decr, v.v.)
- Giao thức client PostgreSQL
- Tương thích với giao thức Memcache
Hiệu Năng Thông Qua Tối Ưu Hóa Thủ Công
Khi được hỏi về các tuyên bố hiệu năng, nhà phát triển giải thích rằng Pogocache đạt được tốc độ thông qua việc tối ưu hóa thủ công cẩn thận thay vì dựa vào bất kỳ kỹ thuật đột phá đơn lẻ nào. Trọng tâm là giảm thiểu xung đột thông qua các kỹ thuật như hashmap phân đoạn và một lớp mạng được chế tạo cẩn thận.
Dự án được viết bằng ANSI C và được thiết kế đặc biệt cho các nền tảng Linux và macOS . Cách tiếp cận cấp thấp này cho phép kiểm soát chặt chẽ việc phân bổ bộ nhớ và tài nguyên hệ thống, góp phần vào việc tăng hiệu năng.
Các Tính Năng Kỹ Thuật Chính:
- Được viết bằng ANSI C cho Linux/macOS
- Kiến trúc hashmap phân mảnh để giảm thiểu xung đột
- Phân bổ bộ nhớ thấp thông qua tối ưu hóa chia sẻ RAM
- Tùy chọn thư viện nhúng để tích hợp trực tiếp
- Hỗ trợ TLS/HTTPS cho kết nối bảo mật
- Cơ chế xác thực có thể cấu hình
Thiết Kế Thư Viện Có Thể Nhúng
Không giống như nhiều máy chủ cache chạy như các tiến trình riêng biệt, Pogocache cũng có thể được nhúng trực tiếp vào các ứng dụng như một thư viện C . Cách tiếp cận này loại bỏ overhead mạng cho các ứng dụng có thể tích hợp cache trực tiếp vào không gian tiến trình của chúng.
Thiết kế có thể nhúng bao gồm một API C đơn giản với các hàm cho các thao tác cơ bản như get, set, delete và các thao tác increment. Điều này làm cho nó có thể truy cập được đối với các ứng dụng được viết bằng C hoặc các ngôn ngữ có thể gọi thư viện C .
Các hàm C API cốt lõi:
pogocache_create()
- Khởi tạo phiên bản cachepogocache_add()
- Lưu trữ dữ liệu với khóapogocache_get()
- Truy xuất dữ liệu theo khóapogocache_delete()
- Xóa dữ liệu theo khóapogocache_incr()
- Tăng giá trị sốpogocache_free()
- Dọn dẹp tài nguyên
Kế Hoạch Tích Hợp Cơ Sở Dữ Liệu Tương Lai
Các thành viên cộng đồng đặc biệt quan tâm đến kế hoạch tích hợp cơ sở dữ liệu của dự án. Nhà phát triển làm rõ rằng thay vì trở thành một cơ sở dữ liệu SQL đầy đủ, Pogocache nhằm mục đích làm việc cùng với các cơ sở dữ liệu hiện có như SQLite , DuckDB và PostgreSQL như một lớp cache trong suốt cho các thao tác đọc.
Không có ý định biến pogocache thành một cơ sở dữ liệu sql. Tôi thích giữ nó như một cache. Thay vào đó đang khám phá các cách để làm việc với các cơ sở dữ liệu hiện có như sqlite, duckdb, postgres. Giống như cung cấp các thao tác kiểu proxy mà cache các thao tác đọc sql một cách trong suốt.
Cách tiếp cận này có thể cung cấp lợi ích hiệu năng đáng kể cho các ứng dụng có khối lượng công việc đọc nhiều trong khi giữ độ phức tạp của một hệ thống cơ sở dữ liệu đầy đủ riêng biệt.
Bảo Mật và Xác Thực
Phiên bản hiện tại bao gồm xác thực cơ bản thông qua các tham số mật khẩu dòng lệnh, mặc dù phản hồi từ cộng đồng cho thấy sự quan tâm đến các phương pháp bổ sung như biến môi trường hoặc xác thực dựa trên tệp. Dự án cũng hỗ trợ TLS/HTTPS cho các kết nối an toàn.
Pogocache đại diện cho một bổ sung thú vị cho bối cảnh cache, đặc biệt là đối với các nhà phát triển muốn tính linh hoạt của hỗ trợ đa giao thức mà không hy sinh hiệu năng. Bản chất có thể nhúng và các tính năng tích hợp cơ sở dữ liệu được lên kế hoạch có thể làm cho nó hấp dẫn đối với các ứng dụng cần cả hiệu năng cao và tính linh hoạt triển khai.
Tham khảo: pogocache