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 มีความสามารถหลักสี่ประการ:
- การสร้างแบบจำลองวัตถุ
- การสร้างดัชนี
- สอบถามได้อย่างคล่องแคล่ว
- การรวมอย่างคล่องแคล่ว
วิธีการทำงาน
ก่อนเริ่มต้นใช้งาน Redis OM คุณต้องติดตั้งแพ็คเกจในโครงการของคุณ ในการดำเนินการนี้ เพียงเรียกใช้
dotnet add package Redis.OM. ตรรกะการเชื่อมต่อหลักภายในไลบรารี Redis OM มีอยู่ใน
RedisConnectionProvider. ผู้ให้บริการรายนี้ให้สิทธิ์เข้าถึงอ็อบเจ็กต์ต่างๆ สามรายการที่คุณสามารถใช้เพื่อสื่อสารกับ Redis:
IRedisConnection
ให้คุณติดต่อกับ Redis ได้โดยตรงโดยใช้Execute
และExecuteAsync
วิธีการ- The
RedisCollection<T>
เป็นคอลเล็กชันของอ็อบเจ็กต์ที่พิมพ์โดยทั่วไป อินเทอร์เฟซนี้มี API การค้นหาอย่างคล่องแคล่ว - ชุด
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 และแน่นอนว่าเราชอบการสนับสนุนจากชุมชนเสมอ เราจึงยินดีต้อนรับฝ่ายประชาสัมพันธ์เสมอ :)