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

Giới thiệu Redis OM .NET

Mô hình đối tượng và API thông thạo cho .NET và Redis

Redis là một công nghệ tuyệt vời được hàng triệu nhà phát triển yêu thích vì hai lý do:tốc độ và sự đơn giản. Redis cung cấp một giao diện gốc trực quan được tổ chức hợp lý thành các cấu trúc dữ liệu mà các lập trình viên đã biết. Hơn nữa, những cấu trúc đó rất đơn giản để sử dụng và được tối ưu hóa tuyệt vời. Đó là sự kết hợp tối ưu giữa tốc độ và sự đơn giản mà chúng tôi đang hướng tới khi phát hành thư viện ứng dụng khách mới cho .NET, Redis OM.

Redis OM .NET là gì?

Redis OM là ánh xạ đối tượng và hơn thế nữa dành cho Redis. Động lực đằng sau Redis OM là để trả lời câu hỏi "Làm thế nào các nhà phát triển có thể nhận được đòn bẩy tuyệt vời từ Redis mà không cần học tất cả các lệnh của Redis?" Đối với bản phát hành xem trước đầu tiên này, chúng tôi đang tìm cách giải quyết câu hỏi, "Làm cách nào chúng tôi có thể lưu trữ và tìm thấy các đối tượng miền của mình trong Redis?" Bản phát hành xem trước của Redis OM .NET là trình ánh xạ đối tượng, trình tạo chỉ mục phụ và trình tạo truy vấn đơn giản và mạnh mẽ. Tất cả những điều này đều hướng tới việc giúp bạn lưu trữ và tìm các đối tượng miền của mình với Redis.

Mô-đun Redis

API mô-đun đã là một công cụ thay đổi trò chơi cho Redis. Các mô-đun bổ sung một lượng lớn tính linh hoạt cho nền tảng đồng thời cung cấp một số tính năng cần thiết cho Redis. Đặc biệt, RedisJSON mở khóa một lượng lớn chức năng, đặc biệt là về lập chỉ mục thứ cấp và mô hình hóa tài liệu. Mặc dù Redis OM hoạt động tốt với Redis cốt lõi, nhưng Redis OM thực sự đạt được thành công khi bạn thêm RedisJSON, tận dụng tối đa RedisJSON để tạo ra một API phong phú và mạnh mẽ để tạo mô hình đối tượng và truy vấn chúng trong Redis.

Khả năng

Phiên bản xem trước của Redis OM .NET có bốn khả năng chính:

  1. Mô hình hóa đối tượng
  2. Tạo chỉ mục
  3. Truy vấn thông thạo
  4. Tổng hợp thông thạo

Cách hoạt động

Trước khi thiết lập và chạy Redis OM, bạn cần cài đặt gói trong dự án của mình. Để làm như vậy, chỉ cần chạy

dotnet add package Redis.OM
. Logic kết nối chính trong thư viện Redis OM tồn tại trong
RedisConnectionProvider
. Nhà cung cấp này cấp quyền truy cập vào ba đối tượng khác nhau mà bạn có thể sử dụng để giao tiếp với Redis:

  1. IRedisConnection
    cho phép bạn giao tiếp trực tiếp với Redis bằng
    Execute
    ExecuteAsync
    phương pháp.
  2. RedisCollection<T>
    là một tập hợp các đối tượng được đánh kiểu chung. Giao diện này cung cấp API truy vấn thông thạo.
  3. RedisAggregationSet<T>
    cho phép bạn xây dựng và thực thi các đường ống tổng hợp trong Redis bằng API Fluent.

Đang kết nối với Redis

Để kết nối Redis OM với Redis trong ASP.NET Core, bạn nên chèn một phiên bản của

RedisConnectionProvider
ví dụ như một singleton. Để thực hiện việc này, bạn sẽ sử dụng URI của Redis. Nếu bạn đang sử dụng .NET 6, điều này có nghĩa là mở
program.cs 
của bạn tệp và thêm:

Đối với .NET 5, sử dụng tệp Startup.cs, bạn có thể thêm phần sau vào

Startup.ConfigureServices
:

Lập mô hình và tìm kiếm đối tượng

RedisJSON cho phép bạn lưu trữ các đối tượng JSON trong Redis nguyên bản và truy vấn các đối tượng đó. Nhưng để truy vấn JSON của bạn, trước tiên bạn cần xác định các chỉ mục của mình. Để làm cho quá trình này dễ dàng hơn, chúng tôi đã giới thiệu mô hình khai báo trong Redis OM .NET để cho phép bạn xác định các chỉ mục này thông qua giao diện khai báo. Nếu bạn muốn khai báo một lớp để lưu trữ trong Redis và lập chỉ mục các thuộc tính của nó, bạn trang trí lớp bằng

Document
và sau đó trang phục các thuộc tính riêng lẻ với
Indexed
hoặc
Searchable
thuộc tính.
Indexed
ngụ ý chỉ mục tiêu chuẩn, trong khi
Searchable
chỉ áp dụng cho các chuỗi và có nghĩa là thuộc tính sẽ có thể truy vấn được bằng tìm kiếm toàn văn. Tiếp theo, bạn có thể tạo chỉ mục trong Redis bằng cách chuyển kiểu mới được trang trí của bạn vào
IRedisConnection.CreateIndex
phương pháp. Vì vậy, ví dụ:nếu bạn muốn khai báo một lớp Khách hàng với một chỉ mục, bạn sẽ làm như sau:

Truy vấn

Với một chỉ mục được tạo, bây giờ bạn có thể sử dụng

RedisCollection<T>
để truy vấn các đối tượng trong Redis. Vì vậy, nếu bạn đã lưu John trong Redis dưới dạng đối tượng Khách hàng, thì bạn có thể truy vấn anh ta:

Bạn cũng có thể dễ dàng thực hiện các truy vấn phạm vi. Ví dụ:hãy tìm tất cả những Khách hàng chưa đến tuổi nghỉ hưu:

Với

RedisCollection
và RedisJSON, bạn có thể tạo các truy vấn phong phú và phức tạp như bạn thường làm trong LINQ và Redis OM sẽ quản lý bản dịch sang ngôn ngữ truy vấn của Redis cho bạn.

Tổng hợp

Ngoài việc truy vấn, bạn có thể sử dụng Redis Aggregations để xây dựng các đường ống tổng hợp có thể thực hiện tất cả các việc. Ví dụ:giả sử bạn muốn tìm độ tuổi của mỗi khách hàng trong 3 năm, bạn có thể làm như vậy bằng một phép toán số học đơn giản bên trong

Apply
biểu thức, sẽ chuyển sang một đường dẫn tổng hợp được định dạng đúng trong Redis:

Bạn cũng có thể nhóm các bản ghi lại với nhau và tính toán thống kê tóm tắt về chúng. Vì vậy, nếu bạn muốn phân nhóm khách hàng theo họ của họ, thì bạn có thể tính toán thống kê tóm tắt. Ví dụ:đây là cách bạn có thể tính tuổi trung bình:

Kết thúc

Đây chỉ là một tổng quan ngắn gọn về các khả năng của Redis OM cho .NET. Nếu bạn muốn tìm hiểu thêm, bạn có thể xem hướng dẫn và xem qua tài liệu API. Chúng tôi dự định sẽ sớm bổ sung thêm nhiều tính năng cho Redis.OM và vì vậy, chúng tôi rất mong nhận được phản hồi từ cộng đồng. Hãy đến và thử nó ra. Nếu bạn tìm thấy sự cố hoặc nghĩ về điều gì đó bạn muốn xem được thêm vào thư viện, hãy mở sự cố trong GitHub. Và theo lẽ tự nhiên, chúng tôi luôn yêu thích những đóng góp từ cộng đồng, vì vậy những bài PR luôn được hoan nghênh :).