Computer >> Máy Tính >  >> Lập trình >> Redis

Giới thiệu Redis OM cho Node.js

Ánh xạ đối tượng nhanh chóng và dễ dàng cho JavaScript và TypeScript

Tôi đã viết một thứ — à, thực ra thì một vài người trong chúng tôi đã viết những thứ — tôi vừa viết phiên bản Node.js. Tôi nghĩ đó là một điều khá thú vị đáng để bạn quan tâm và tôi rất vui vì điều đó. Điều tôi đang nói về:Redis OM cho Node.js.

Redis OM là gì? Redis OM là một thư viện giúp bạn dễ dàng sử dụng Redis bằng cách ánh xạ các cấu trúc dữ liệu Redis thẳng tới mã của bạn. Bit OM là viết tắt của ánh xạ đối tượng , nhưng chúng tôi dự định làm nhiều hơn thế trong tương lai.

Đọc để biết thêm chi tiết.

Nhanh hơn nhanh

Bạn có thể đã biết rằng Redis nhanh — nhanh hơn là nhanh — và nó lưu trữ nhiều thứ mà chương trình của bạn quan tâm:băm, danh sách, tập hợp, những thứ tương tự. Đây là những cấu trúc tôi nghĩ đến với tư cách là một lập trình viên. Khi tôi giải thích Redis là gì cho một người chưa quen với công nghệ, tôi nói với họ rằng Redis là tất cả những cấu trúc dữ liệu mà bạn đã học ở trường đại học với một giao thức dây đặt trước mặt họ.

Các mô-đun làm cho Redis thậm chí còn đáng tin cậy (vâng, tôi biết đó không phải là một từ) bằng cách giới thiệu mới cấu trúc dữ liệu để các chương trình của bạn quan tâm. RedisBloom bổ sung các cấu trúc dữ liệu xác suất như bộ lọc Bloom và Cuckoo. RedisGraph cho phép bạn lưu trữ và truy vấn đồ thị bằng Cypher. RedisAI cung cấp cho bạn sức mạnh cho những điều tuyệt vời của AI. Tất cả đều rất hữu ích.

Các mô-đun đáng kinh ngạc nhất

Nhưng có hai mô-đun đặc biệt khiến Redis trở thành cơ sở dữ liệu trong bộ nhớ mạnh mẽ mà mọi lập trình viên muốn có:RedisJSON và RediSearch.

RedisJSON đưa hệ thống phân cấp vào bảng. Hàm băm rất tuyệt, nhưng nếu bạn muốn nhúng mã băm vào hàm băm của mình thì sao? RedisJSON đã giúp bạn bằng cách cho phép bạn lưu trữ dữ liệu phân cấp của tôi trong các tài liệu JSON.

Trong khi đó, RediSearch cho phép bạn tìm thấy cấu trúc dữ liệu mà bạn quan tâm. Chắc chắn, bạn có thể tạo các chỉ mục thủ công bằng cách sử dụng các bộ, nhưng cách tiếp cận đó bị hạn chế và thủ công. Kinh quá. RediSearch cho phép bạn viết các truy vấn để truy cập ngay vào dữ liệu bạn muốn.

Kết hợp, RediSearch và RedisJSON làm cho Redis trở thành một cơ sở dữ liệu tài liệu khá tiện lợi. Bạn có được hệ thống phân cấp bạn muốn và khả năng tìm thấy những thứ mà bạn quan tâm trong đó. Tốt nhất của cả hai thế giới và tất cả những điều đó.

Trên thực tế, chúng tôi nghĩ rằng đây là một sự kết hợp tuyệt vời, chúng tôi đang tập hợp chúng lại với nhau và chỉ gọi chúng là RedisJSON.

Redis OM cho Node.js

Ngôn ngữ truy vấn cho RediSearch rất mạnh mẽ. Rất mạnh. Nó cho phép bạn tìm kiếm các tài liệu Hashes và JSON trong Redis theo nhiều cách khác nhau và phức tạp. Và khi tôi cần tất cả sức mạnh đó, điều đó thật tuyệt. Nhưng đôi khi tôi không cần tất cả sức mạnh đó. Và tôi một nhà phát triển lười biếng — tôi muốn nó trở nên dễ dàng nhất có thể (và không dễ dàng hơn).

Làm cho mọi thứ trở nên dễ dàng nhất có thể là điều tôi đã cố gắng làm khi viết Redis OM cho Node.js. Redis OM giúp đơn giản hóa việc thêm Redis vào ứng dụng Node.js của bạn bằng cách ánh xạ các hàm băm và tài liệu JSON vào các lớp mà bạn xác định. Không có lệnh phức tạp, chỉ cần mã thuần túy với giao diện thông thạo. Hãy xem.

Xác định một thực thể:

Tạo một thực thể mới và lưu nó:

Tìm kiếm các thực thể phù hợp:

Bây giờ tôi khá thiên vị kể từ khi tôi viết thư viện này và tất cả, nhưng tôi nghĩ điều đó khá tuyệt! Hãy xem xét kỹ hơn cú pháp này và tìm hiểu cách hoạt động của nó.

Cách hoạt động

Có bốn lớp bạn cần quan tâm trong Redis OM cho Node.js. Chúng là Thực thể, Lược đồ, Máy khách và Kho lưu trữ.

Thực thể là các lớp học mà bạn làm việc cùng. Những thứ đang được tạo, đọc, cập nhật và xóa. Những thứ đang được tìm kiếm. Bất kỳ lớp nào mở rộng Thực thể là một thực thể. Thông thường, bạn sẽ xác định một thực thể bằng một dòng mã, nhưng bạn cũng có thể thêm logic tùy chỉnh vào đó:

Lược đồ xác định các trường trên thực thể của bạn, loại của chúng và cách chúng được ánh xạ nội bộ với Redis. Theo mặc định, các thực thể ánh xạ tới mã băm trong Redis, nhưng bạn cũng có thể ánh xạ chúng tới tài liệu JSON:

Khi bạn tạo một Lược đồ, nó sẽ sửa đổi Thực thể mà bạn đã giao nó, thêm bộ điều chỉnh và bộ định tuyến cho các thuộc tính bạn xác định. Loại mà getters và setters chấp nhận và trả về được xác định với thuộc tính type ở trên.

Khách hàng kết nối bạn với Redis. Máy khách có các phương thức để mở, đóng và thực hiện các lệnh thô đối với Redis. Bạn chủ yếu sẽ sử dụng mở và đóng:

Một Lược đồ và một Máy khách được yêu cầu để khởi tạo một Kho lưu trữ. Kho lưu trữ cung cấp phương tiện để đọc, ghi và xóa các thực thể. Và các phương tiện để tìm kiếm chúng:

Khi chúng ta có một kho lưu trữ, chúng ta có thể sử dụng nó để tạo, đọc, cập nhật và xóa các thực thể. Ở đây, tôi chỉ đang làm điều đó với một album yêu thích của tôi của Mushroomhead:

Chúng tôi cũng có thể sử dụng nó để tìm kiếm các thực thể:

Và, để thuận tiện cho việc sao chép và dán của bạn, đây là mẫu đó dưới dạng một khối mã lớn:

Và đó là Redis OM cho Node.js in, như họ nói, một cách tóm tắt.

Kết thúc

Đây là một tổng quan nhanh về những gì Redis OM cho Node.js có thể làm. Nếu bạn muốn tìm hiểu thêm, có một hướng dẫn sẽ hướng dẫn bạn xây dựng một dịch vụ đơn giản với Redis OM. Và nếu bạn muốn đi sâu hơn và hoàn toàn nên làm, hãy xem tài liệu README và API trên GitHub.

Tất nhiên, đây là phần mềm hoàn toàn mới chưa được thử nghiệm trong tự nhiên. Bạn là hoang dã. Hãy dùng thử. Đá lốp xe. Cố gắng phá vỡ nó. Xem những gì ở đó và những gì có thể ở đó. Và khi bạn tìm thấy lỗi đó hoặc nghĩ về tính năng hoàn hảo đó, hãy cho tôi biết bằng cách mở sự cố hoặc gửi yêu cầu kéo. Chân thành đánh giá cao sự giúp đỡ của bạn trong việc cải tiến Redis OM. Cảm ơn!