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

สวัสดี Redis Stack

สวัสดี Redis Stack

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

บทนำ

ที่ Redis เรากำลังสร้างชั้นข้อมูลแบบเรียลไทม์เพื่อตอบสนองความต้องการสากลสำหรับแอปพลิเคชันและบริการที่ตอบสนองและมีความหน่วงต่ำ

ในการสร้างแอปพลิเคชันที่มอบประสบการณ์แบบเรียลไทม์ คุณต้องมีฐานข้อมูลที่สามารถประมวลผลคำขอใดๆ ก็ได้ ไม่ว่าจะเป็นการดึงวัตถุอย่างง่าย การค้นหา หรือการรวมที่ซับซ้อน ด้วยเวลาตอบสนองที่เร็วที่สุดที่เป็นไปได้ โดยควรใช้เวลาน้อยกว่าหนึ่งมิลลิวินาที เหตุผลนั้นง่าย:ในแอปพลิเคชันทั่วไป ทุกการโต้ตอบของผู้ใช้จะสร้างการเรียกหลายรายการไปยังฐานข้อมูล ซึ่งอาจส่งผลให้เกิดโอเวอร์เฮดที่สำคัญ หากคุณเพิ่มเวลาในการตอบสนองแบบไปกลับของเครือข่ายระหว่างผู้ใช้ปลายทางกับแอป ทุกๆ มิลลิวินาทีที่เพิ่มขึ้นมาในฐานข้อมูลจะทำให้ส่งมอบประสบการณ์ผู้ใช้ปลายทางแบบเรียลไทม์ได้ยากขึ้น

สิ่งนี้ถือเป็นรูปแบบข้อมูล ไม่ว่าจะเป็นคีย์/ค่า เอกสาร สตรีม กราฟ อนุกรมเวลา หรือโครงสร้างข้อมูลความน่าจะเป็น

เราทำอะไรลงไปบ้าง

จากแนวโน้มในช่วง 24 เดือนที่ผ่านมาของ DB-Engines อย่างชัดเจน โมเดลข้อมูลที่เติบโตเร็วที่สุด ได้แก่ คีย์-ค่า การค้นหา เอกสาร กราฟ และอนุกรมเวลา แนวโน้มนี้ยังแสดงให้เห็นว่ามีนักพัฒนาซอฟต์แวร์จำนวนน้อยลงที่เลือกสร้างแบบจำลองแอปพลิเคชันของตนด้วยฐานข้อมูลเชิงสัมพันธ์

สวัสดี Redis Stack

ตามที่ปรากฎ เราได้ใช้เวลาสี่ปีที่ผ่านมาในการสร้างเอ็นจินข้อมูลเฉพาะหลายตัวที่ขยายฟังก์ชันโครงสร้างข้อมูลคีย์/ค่าหลักของ Redis ด้วยโมเดลข้อมูลที่ทันสมัยและความสามารถในการประมวลผลข้อมูล เช่น การค้นหา เอกสาร กราฟ อนุกรมเวลา และโครงสร้างข้อมูลความน่าจะเป็น

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

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

นี่คือเหตุผลที่เราสร้าง Redis Stack

กอง Redis

Redis Stack รวมโมดูล Redis ชั้นนำไว้ในผลิตภัณฑ์เดียว ซึ่งทำให้ง่ายต่อการเริ่มสร้างด้วยความสามารถในการค้นหา เอกสาร กราฟ และอนุกรมเวลาตาม Redis

Redis Stack เป็นชุดส่วนประกอบสามส่วน:

  1. เซิร์ฟเวอร์ Redis Stack รวม Redis โอเพ่นซอร์สเข้ากับ RediSearch, RedisJSON, RedisGraph, RedisTimeSeries และ RedisBloom
  2. RedisInsight เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการแสดงภาพและเพิ่มประสิทธิภาพข้อมูล Redis ทำให้การพัฒนาแอปพลิเคชันแบบเรียลไทม์ง่ายขึ้นและสนุกกว่าที่เคย
  3. Redis Stack Client SDK รวมไคลเอนต์ Redis อย่างเป็นทางการชั้นนำใน Java, JavaScript และ Python ลูกค้าเหล่านี้ยังรวมถึงชุดไลบรารีการแมปวัตถุชุดใหม่ของเรา ซึ่งนำเสนอสิ่งที่เป็นนามธรรมที่เป็นมิตรกับนักพัฒนา ซึ่งช่วยให้คุณทำงานได้อย่างมีประสิทธิผลด้วยโค้ดเพียงไม่กี่บรรทัด ไลบรารีเหล่านี้รู้จักกันในชื่อ Redis OM สำหรับ .NET, Node.js, Java และ Python ทำให้การผสานรวมกับเฟรมเวิร์กหลักของแอปพลิเคชัน เช่น Spring, ASP.NET Core, FastAPI และ Express ทำได้ง่ายกว่าที่เคย
สวัสดี Redis Stack

เริ่มต้นใช้งาน Redis Stack

Redis Stack พร้อมใช้งานโดยทั่วไปแล้วสำหรับ Redis 6.2 และเรายังมีผู้สมัครรุ่นสำหรับ Redis 7.0

เรามอบวิธีต่างๆ ในการเริ่มต้นใช้งาน Redis Stack อย่างรวดเร็ว:

  • ดาวน์โหลด Redis Stack โดยตรงจาก redis.io
  • ติดตั้งโดยใช้ตัวจัดการแพ็คเกจที่คุณโปรดปรานหรือเพียงแค่เรียกใช้อิมเมจ Redis Stack docker
  • ปรับใช้ Redis Stack ในระบบคลาวด์โดยการสร้างฐานข้อมูลฟรีบน Redis Enterprise Cloud หรือโดยใช้หนึ่งในแผนถาวรของเรา เรายังมอบความสามารถของ Redis Stack ในซอฟต์แวร์ Redis Enterprise Software ให้กับทุกคนที่จัดการด้วยตนเองหรือปรับใช้ในองค์กร

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

ทางฝั่งไคลเอ็นต์ เราสนับสนุน Redis Stack ในไคลเอนต์ Redis ชั้นนำหลายตัว — Jedis (Java), redis-py (Python) และ node-redis (JavaScript) — และด้วยไลบรารีการแมปวัตถุใหม่ของเรา (redis-om-spring , redis-om-python, redis-om-node, redis-om-dotnet)
คุณสามารถโคลนที่เก็บตัวอย่างสำหรับแต่ละภาษาที่เราสนับสนุนเพื่อเริ่มพัฒนาฐานข้อมูลที่สร้างขึ้นใหม่ได้

กอง Redis &Redis

เรารู้สึกตื่นเต้นเกี่ยวกับจักรวาลของแอปพลิเคชันแบบเรียลไทม์ที่เราเชื่อว่า Redis Stack จะทำให้เป็นไปได้ แต่เราต้องการชัดเจนว่า Redis Stack ไม่ได้มาแทนที่ Redis

Redis เป็นเทคโนโลยีโอเพ่นซอร์สหลัก และเรามุ่งเน้นที่การพัฒนาอย่างต่อเนื่องไม่เปลี่ยนแปลง คุณจะมีตัวเลือกในการดาวน์โหลด สร้าง ติดตั้ง และเรียกใช้โอเพ่นซอร์ส Redis เสมอ

เมื่อคุณพร้อมที่จะเรียกใช้ Redis Stack คุณสามารถย้ายข้อมูลของคุณได้อย่างง่ายดายโดยใช้กลไกการจำลองแบบ Redis หรือโดยการโหลดไฟล์ RDB หรือ AOF

สวัสดี Redis Stack

ใบอนุญาต

ส่วนประกอบ codebase ทั้งหมดของ Redis Stack เปิดกว้างและให้ทุกคนใช้งานได้ฟรี 

แต่เรายังคงต้องการความชัดเจนมากเกี่ยวกับโมเดลการอนุญาตให้ใช้สิทธิ์ Redis Stack:

  • เซิร์ฟเวอร์ Redis Stack ให้บริการภายใต้ Redis Source Available License (RSAL) (ใบอนุญาตเดียวกันกับที่เราเคยใช้กับโมดูล Redis ของเรา)
  • เรากำลังให้บริการ RedisInsight ภายใต้ใบอนุญาตสาธารณะฝั่งเซิร์ฟเวอร์ (SSPL) ที่มีอยู่  
  • ไคลเอ็นต์ Redis ชั้นนำและไลบรารีการแมปวัตถุของเราได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT แบบโอเพนซอร์ส
สวัสดี Redis Stack

โดยสรุป

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

เราจะเพิ่มความสามารถให้กับ Redis Stack ต่อไป เพื่อให้นักพัฒนาพัฒนาแอปพลิเคชันที่ทันสมัยได้อย่างรวดเร็วและง่ายดายสำหรับยุคเรียลไทม์ที่อิงจาก Redis ทั้งหมด

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Redis Stack และความสามารถที่มี ให้ปรับแต่งเซสชันเจาะลึกเกี่ยวกับ Redis Stack ที่จัดส่งที่กิจกรรม RedisDays ของเราตามต้องการ

เรายังได้รวบรวมคำตอบอย่างรวดเร็วสำหรับคำถามที่คาดหวังไว้ –  ในส่วนคำถามที่พบบ่อยสั้นๆ
สุดท้ายนี้ เรายินดีรับฟังความคิดเห็นของคุณเกี่ยวกับ Redis Stack ส่งบันทึกถึงเราในรายชื่อผู้รับจดหมาย Redis หรือเข้าร่วมเซิร์ฟเวอร์ Redis Discord เพื่อแจ้งให้เราทราบว่าคุณคิดอย่างไร

คำถามที่พบบ่อย

องค์ประกอบของ Redis Stack คืออะไร

Redis Stack เป็นแพ็คเกจเดียวที่รวม Redis โอเพ่นซอร์สพร้อมโมดูล Redis ชั้นนำ (เซิร์ฟเวอร์ Redis Stack) และ RedisInsight

สำหรับการเปิดตัว Redis Stack Server รุ่นแรก เรารวม 5 โมดูล ได้แก่ RedisJSON, RedisSearch, RedisGraph, RedisTimeSeries และ RedisBloom

Redis Stack ได้รับการสนับสนุนโดยไคลเอ็นต์ Redis อย่างเป็นทางการและไลบรารีการแมปออบเจ็กต์ และช่วยให้นักพัฒนาสามารถใช้ความสามารถ Redis Stack ขั้นสูงกับเฟรมเวิร์กของแอปพลิเคชันต่างๆ ได้อย่างง่ายดาย รวมถึง Spring, ASP.Net Core, Express และ FastAPI

Redis Stack มีความสามารถอะไรบ้างสำหรับนักพัฒนา

Redis Stack ช่วยให้นักพัฒนา: 

  • จัดทำดัชนีและค้นหาข้อมูล Redis เรียกใช้การรวม ทำการค้นหาข้อความแบบเต็ม 
  • เรียกใช้การค้นหาความคล้ายคลึงเวกเตอร์ขั้นสูง (KNN)
  • จัดเก็บและจัดการเอกสาร JSON ที่ซ้อนกันอย่างมีประสิทธิภาพ
  • สร้างและจำลองความสัมพันธ์เป็นกราฟคุณสมบัติ
  • จัดเก็บ ค้นหา และรวมข้อมูลอนุกรมเวลา
  • ใช้ประโยชน์จากโครงสร้างข้อมูลความน่าจะเป็นที่รวดเร็ว กว้างขวาง และคำนวณได้อย่างมีประสิทธิภาพ 
  • แสดงภาพ ดีบัก และวิเคราะห์ข้อมูล Redis ได้อย่างง่ายดายโดยใช้ RedisInsight

คุณจะเพิ่มความสามารถให้กับ Redis Stack อีกหรือไม่

เราจะพิจารณาเพิ่มความสามารถใหม่หรือแม้แต่โมดูลให้กับ Redis Stack หาก:

  1. เราเห็นความต้องการจากชุมชนของเรา
  2. ความสามารถใหม่นี้สอดคล้องกับวิสัยทัศน์ของ Redis 
  3. ทีมวิศวกรของ Redis Inc. สามารถสนับสนุนการเพิ่มเติมได้อย่างเป็นทางการ

เหตุใด RedisGears จึงไม่เป็นส่วนหนึ่งของ Redis Stack รุ่นแรก

RedisGears เพิ่มทริกเกอร์ฐานข้อมูล การประมวลผลสตรีม ฟังก์ชันแบบกระจาย และความสามารถในการตั้งโปรแกรมเต็มรูปแบบใน Redis

เราจะเพิ่ม RedisGears ใน Redis Stack เมื่อการรองรับ JavaScript คือ GA ในปลายปีนี้

ฉันสามารถจัดการ Redis Stack ด้วยตนเองได้ฟรีหรือไม่

ใช่ คุณทำได้!

ไลบรารีการแมปวัตถุ Redis คืออะไร

ไลบรารีการแมปวัตถุ Redis ให้ระดับของสิ่งที่เป็นนามธรรมเหนือ API คำสั่ง Redis เหมือนกับที่ ORM ทำกับฐานข้อมูล SQL มาแยกความแตกต่างของไลบรารีไคลเอนต์ Redis หลักจากไลบรารีการแมปวัตถุ Redis กันเถอะ

ไลบรารีไคลเอ็นต์ Core Redis มีหน้าที่ดังต่อไปนี้:

  • ใช้โปรโตคอล Redis (RESP ฯลฯ)
  • จัดการการเชื่อมต่อ (TCP ฯลฯ) เชื่อมต่อใหม่ ค้นพบเซิร์ฟเวอร์ ฯลฯ
  • จัดการตรรกะการดำเนินการ (เธรด, async io ฯลฯ)
  • เปิดเผย API สำหรับดำเนินการคำสั่ง Redis โดยพลการ
  • เปิดเผยคำสั่ง Redis ในรูปแบบสำนวนภาษา
  • เชื่อมต่อกับการปรับใช้ Redis ผ่านสตริงการเชื่อมต่อ

ไลบรารีการแมปวัตถุให้เลเวอเรจเพิ่มเติม:

  • อนุญาตให้นักพัฒนานำกรณีการใช้งาน Redis ทั่วไปไปใช้ในบรรทัดโค้ดน้อยที่สุด ในตอนนี้ ซึ่งรวมถึงการสร้างแบบจำลองโดเมนและ API การสืบค้นข้อมูลอย่างคล่องแคล่ว ในอนาคต เราจะเพิ่มการสนับสนุนสำหรับกรณีการใช้งาน Redis ทั่วไปอื่นๆ รวมถึงการแคช พื้นที่จัดเก็บเซสชัน การจำกัดอัตรา ลีดเดอร์บอร์ด และตัวลบข้อมูลซ้ำ
  • เปิดเผย API ระดับสูงสำหรับความสามารถที่มีให้โดย Redis Stack
  • ให้ประโยชน์ของ Redis โดยไม่เปิดเผยคำสั่ง Redis ที่ซ่อนอยู่
  • ผสานรวมกับเฟรมเวิร์กแอปพลิเคชันหลัก (เช่น Spring, ASP.NET Core, FastAPI, Express)

ไลบรารีการแมปวัตถุเหล่านี้ขึ้นอยู่กับไลบรารี Redis หลักอย่างน้อยหนึ่งไลบรารีเสมอ

มีไคลเอ็นต์ .NET สำหรับ Redis Stack หรือไม่

ในปัจจุบัน ไคลเอนต์ที่แนะนำสำหรับนักพัฒนา .NET คือ StackExchange ซึ่ง Redis, Inc ไม่รองรับอย่างเป็นทางการ คุณสามารถขยายไคลเอนต์ด้วย NRediSearch สำหรับ RediSearch, NRedisGraph สำหรับ RedisGraph และ NRedisTimeSeries สำหรับ RedisTimeSeries คุณยังสามารถใช้ไลบรารี redis-om-dotnet ที่สร้างทับ StackExchange ได้อีกด้วย

ฉันสามารถทำงานกับ RedisInsight บน Redis Enterprise Cloud ได้หรือไม่

RedisInsight ยังไม่พร้อมใช้งานบน Redis Enterprise Cloud อย่างไรก็ตาม คุณสามารถเชื่อมต่อกับแอปพลิเคชัน RedisInsight กับฐานข้อมูลบนคลาวด์ของคุณได้ เราวางแผนที่จะเพิ่ม RedisInsight ลงในระบบคลาวด์ภายในปีนี้

ฉันสามารถย้ายฐานข้อมูล Redis Stack ของฉันไปยัง Redis Enterprise Cloud ได้อย่างง่ายดายหรือไม่

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