Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

ขอแนะนำ Redis OM .NET

API ที่คล่องแคล่วและโมเดลวัตถุสำหรับ .NET และ Redis

Redis เป็นเทคโนโลยีที่ยอดเยี่ยมที่นักพัฒนาหลายล้านคนชื่นชอบด้วยเหตุผลสองประการ:ความเร็วและความเรียบง่าย Redis จัดเตรียมอินเทอร์เฟซดั้งเดิมที่ใช้งานง่ายซึ่งจัดอยู่ในโครงสร้างข้อมูลที่โปรแกรมเมอร์รู้อยู่แล้ว นอกจากนี้ โครงสร้างเหล่านี้ยังใช้งานง่ายและปรับให้เหมาะสมอย่างยอดเยี่ยม นี่คือการผสมผสานระหว่างความเร็วและความเรียบง่ายขั้นสุดยอดที่เรากำลังพิจารณาด้วยการเปิดตัวไลบรารีไคลเอนต์ใหม่สำหรับ .NET, Redis OM

Redis OM .NET คืออะไร

Redis OM คือการแมปวัตถุและอื่น ๆ สำหรับ Redis แรงจูงใจเบื้องหลัง Redis OM คือการตอบคำถาม "นักพัฒนาสามารถใช้ประโยชน์จาก Redis ที่น่าทึ่งได้อย่างไรโดยไม่ต้องเรียนรู้คำสั่ง Redis ทั้งหมด" สำหรับรุ่นตัวอย่างแรกนี้ เราต้องการตอบคำถามที่ว่า "เราจะจัดเก็บและค้นหาออบเจ็กต์โดเมนของเราใน Redis ได้อย่างไร" การเปิดตัวตัวอย่างของ Redis OM .NET เป็นตัวแมปออบเจ็กต์ ตัวสร้างดัชนีรอง และตัวสร้างคิวรีที่ใช้งานง่ายและมีประสิทธิภาพ ทั้งหมดนี้มุ่งสู่การช่วยคุณจัดเก็บและค้นหาวัตถุโดเมนของคุณด้วย Redis

โมดูล Redis

โมดูล API เป็นตัวเปลี่ยนเกมสำหรับ Redis โมดูลเพิ่มความยืดหยุ่นอย่างมากให้กับแพลตฟอร์มในขณะที่ให้คุณสมบัติที่สำคัญบางอย่างสำหรับ Redis โดยเฉพาะอย่างยิ่ง RedisJSON ปลดล็อกฟังก์ชันการทำงานจำนวนมหาศาล โดยเฉพาะอย่างยิ่งเกี่ยวกับการจัดทำดัชนีรองและการสร้างแบบจำลองเอกสาร แม้ว่า Redis OM จะทำงานได้ดีกับ Core Redis แต่ Redis OM ก็ประสบความสำเร็จอย่างมากเมื่อคุณเพิ่ม RedisJSON โดยใช้ประโยชน์จาก RedisJSON อย่างเต็มที่เพื่อสร้าง API ที่สมบูรณ์และทรงพลังสำหรับการสร้างโมเดลออบเจ็กต์และการสืบค้นใน Redis

ความสามารถ

เวอร์ชันตัวอย่างของ Redis OM .NET มีความสามารถหลักสี่ประการ:

  1. การสร้างแบบจำลองวัตถุ
  2. การสร้างดัชนี
  3. สอบถามได้อย่างคล่องแคล่ว
  4. การรวมอย่างคล่องแคล่ว

วิธีการทำงาน

ก่อนเริ่มต้นใช้งาน Redis OM คุณต้องติดตั้งแพ็คเกจในโครงการของคุณ ในการดำเนินการนี้ เพียงเรียกใช้

dotnet add package Redis.OM
. ตรรกะการเชื่อมต่อหลักภายในไลบรารี Redis OM มีอยู่ใน
RedisConnectionProvider
. ผู้ให้บริการรายนี้ให้สิทธิ์เข้าถึงอ็อบเจ็กต์ต่างๆ สามรายการที่คุณสามารถใช้เพื่อสื่อสารกับ Redis:

  1. IRedisConnection
    ให้คุณติดต่อกับ Redis ได้โดยตรงโดยใช้
    Execute
    และ
    ExecuteAsync
    วิธีการ
  2. The
    RedisCollection<T>
    เป็นคอลเล็กชันของอ็อบเจ็กต์ที่พิมพ์โดยทั่วไป อินเทอร์เฟซนี้มี API การค้นหาอย่างคล่องแคล่ว
  3. ชุด
    RedisAggregationSet<T>
    ช่วยให้คุณสร้างและดำเนินการไปป์ไลน์การรวมใน Redis โดยใช้ Fluent API

กำลังเชื่อมต่อกับ Redis

ในการเชื่อมต่อ Redis OM กับ Redis ใน ASP.NET Core คุณควรฉีดอินสแตนซ์ของ

RedisConnectionProvider
ตัวอย่างเป็นซิงเกิลตัน ในการดำเนินการนี้ คุณจะต้องใช้ Redis URI หากคุณใช้ .NET 6 แสดงว่าเปิด
program.cs 
ไฟล์และเพิ่ม:

สำหรับ .NET 5 ซึ่งใช้ไฟล์ Startup.cs คุณสามารถเพิ่มสิ่งต่อไปนี้ใน

Startup.ConfigureServices
:

การสร้างแบบจำลองและการค้นหาวัตถุ

RedisJSON ให้คุณเก็บวัตถุ JSON ใน Redis ดั้งเดิมและสืบค้นวัตถุเหล่านั้น แต่หากต้องการสอบถาม JSON คุณต้องกำหนดดัชนีก่อน เพื่อให้กระบวนการนี้ง่ายขึ้น เราได้แนะนำโมเดลการประกาศใน Redis OM .NET เพื่อให้คุณสามารถกำหนดดัชนีเหล่านี้ผ่านอินเทอร์เฟซที่เปิดเผยได้ หากคุณต้องการประกาศคลาสที่จะเก็บไว้ใน Redis และจัดทำดัชนีคุณสมบัติของคลาส คุณต้องตกแต่งคลาสด้วย

Document
แอตทริบิวต์แล้วแต่งกายแต่ละคุณสมบัติด้วย
Indexed
หรือ
Searchable
คุณลักษณะ.
Indexed
หมายถึงดัชนีมาตรฐาน ในขณะที่
Searchable
ใช้เฉพาะกับสตริงและหมายความว่าคุณสมบัติจะสามารถสืบค้นได้ด้วยการค้นหาข้อความแบบเต็ม ถัดไป คุณสามารถสร้างดัชนีใน Redis โดยส่งประเภทที่ตกแต่งใหม่ของคุณไปยัง
IRedisConnection.CreateIndex
กระบวนการ. ตัวอย่างเช่น หากคุณต้องการประกาศคลาสลูกค้าด้วยดัชนี คุณจะต้องทำสิ่งต่อไปนี้:

สอบถาม

เมื่อสร้างดัชนี คุณสามารถใช้

RedisCollection<T>
เพื่อสอบถามวัตถุใน Redis ดังนั้น หากคุณมี John ที่จัดเก็บไว้ใน Redis เป็นออบเจ็กต์ Customer คุณสามารถสอบถามเขาได้:

คุณยังสามารถทำแบบสอบถามช่วงได้อย่างง่ายดาย ตัวอย่างเช่น ลองหาลูกค้าทั้งหมดที่ยังไม่ถึงวัยเกษียณ:

ด้วย

RedisCollection
และ RedisJSON คุณสามารถสร้างการสืบค้นข้อมูลที่สมบูรณ์และซับซ้อนได้ตามปกติใน LINQ และ Redis OM จะจัดการการแปลเป็นภาษาที่ใช้ค้นหาของ Redis ให้คุณ

การรวม

นอกจากการสืบค้นแล้ว คุณสามารถใช้ Redis Aggregations เพื่อสร้างไปป์ไลน์การรวมที่สามารถทำสิ่งต่างๆ ได้ทุกประเภท ตัวอย่างเช่น สมมติว่าคุณต้องการหาอายุของลูกค้าแต่ละรายใน 3 ปี คุณสามารถทำได้โดยใช้การคำนวณทางคณิตศาสตร์ที่ตรงไปตรงมาภายใน

Apply
นิพจน์ ซึ่งจะแปลเป็นไปป์ไลน์การรวมที่จัดรูปแบบอย่างเหมาะสมใน Redis:

คุณยังสามารถจัดกลุ่มเรกคอร์ดเข้าด้วยกันและคำนวณสถิติสรุปได้ ดังนั้นหากคุณต้องการจัดกลุ่มลูกค้าตามนามสกุล คุณสามารถคำนวณสถิติสรุปได้ ตัวอย่างเช่น วิธีคำนวณอายุเฉลี่ยมีดังนี้

ปิดท้าย

นี่เป็นเพียงภาพรวมโดยย่อของความสามารถของ Redis OM สำหรับ .NET หากต้องการเรียนรู้เพิ่มเติม คุณสามารถดูบทแนะนำและดูเอกสาร API ได้ เราวางแผนที่จะเพิ่มคุณสมบัติเพิ่มเติมใน Redis.OM ในเร็วๆ นี้ และด้วยเหตุนี้ เราจึงยินดีรับฟังความคิดเห็นจากชุมชน มาลองดูกัน หากคุณพบปัญหาหรือคิดเห็นสิ่งที่คุณต้องการเพิ่มลงในไลบรารี ให้เปิดปัญหาใน GitHub และแน่นอนว่าเราชอบการสนับสนุนจากชุมชนเสมอ เราจึงยินดีต้อนรับฝ่ายประชาสัมพันธ์เสมอ :)