Redis

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

Redis คืออะไร

Redis ซึ่งย่อมาจาก Remote Dictionary Server คือที่เก็บข้อมูลคีย์-ค่าในหน่วยความจำแบบโอเพนซอร์สที่รวดเร็ว โครงการนี้เริ่มจากการที่ Salvatore Sanfilippo ซึ่งเป็นนักพัฒนาแรกเริ่มของ Redis ต้องการพัฒนาความสามารถในการปรับขนาดสตาร์ทอัพสัญชาติอิตาลีของเขา จากจุดนั้น Sanfilippo ได้พัฒนา Redis ซึ่งในปัจจุบันใช้เป็นฐานข้อมูล แคช ตัวรับส่งข้อความ และคิว

Redis มีเวลาตอบสนองระดับต่ำกว่ามิลลิวินาที ซึ่งช่วยให้แอปพลิเคชันแบบเรียลไทม์ในอุตสาหกรรมต่างๆ อย่างการเล่นเกม เทคโนโลยีการโฆษณา บริการทางการเงิน การดูแลสุขภาพ และ IoT สามารถรองรับคำขอได้หลายล้านรายการต่อวินาที ปัจจุบัน Redis คือหนึ่งในโปรแกรมแบบโอเพนซอร์สที่ได้รับความนิยมมากที่สุด โดยได้รับการขนานนามให้เป็น ฐานข้อมูลซึ่ง “เป็นที่ชื่นชอบมากที่สุด” โดย Stack Overflow ติดต่อกันห้าปีซ้อน ประสิทธิภาพการทำงานที่รวดเร็วทำให้ Redis เป็นตัวเลือกยอดนิยมสำหรับการแคช การจัดการเซสชัน การเล่นเกม ลีดเดอร์บอร์ด การวิเคราะห์แบบเรียลไทม์ ข้อมูลเชิงพื้นที่ การเรียกรถ การสนทนา/การรับส่งข้อความ การสตรีมสื่อ และการเผยแพร่/ติดตามแอป

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

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเพิ่มความเร็วในแอปพลิเคชันของคุณด้วย Amazon ElastiCache for Redis โปรดดูการเสวนาเชิงเทคนิคออนไลน์รายการนี้ 

ประโยชน์ของ Redis

ประสิทธิภาพ

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

โครงสร้างข้อมูลที่ยืดหยุ่น

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

  • String – ข้อความหรือข้อมูลไบนารีที่มีขนาดได้ถึง 512MB
  • List – ชุดของ String ตามลำดับที่ถูกเพิ่ม
  • Set – คอลเลกชันที่ไม่ได้จัดลำดับของ String ที่มีความสามารถในการตัดกัน รวมกัน และแตกต่างจาก Set ประเภทอื่นๆ
  • Sorted Set – Set ที่เรียงลำดับตามค่า
  • Hash – โครงสร้างข้อมูลสำหรับจัดเก็บรายการฟิลด์และค่าต่างๆ
  • Bitmap – ประเภทข้อมูลที่ดำเนินงานในระดับบิต
  • HyperLogLogs – โครงสร้างข้อมูลที่น่าจะเป็นเพื่อคาดการณ์รายการที่ไม่ซ้ำกันในชุดข้อมูล
  • Stream - คิวข้อความโครงสร้างข้อมูลบันทึก
  • Geospatial - แผนที่รายการตามลองจิจูด/ละติจูด "ใกล้เคียง"

ความเรียบง่ายและใช้งานง่าย

Redis ช่วยให้คุณเขียนโค้ดที่แต่เดิมมีความซับซ้อนได้ในรูปแบบที่สั้นลงและเรียบง่ายขึ้น เมื่อใช้ Redis คุณก็ต้องเขียนโค้ดน้อยลงในการจัดเก็บ เข้าถึง และใช้งานข้อมูลในแอปพลิเคชันของคุณ ความแตกต่างก็คือนักพัฒนาที่ใช้ Redis สามารถใช้โครงสร้างคำสั่งที่เรียบง่าย ซึ่งไม่เหมือนกับภาษาสอบถามของฐานข้อมูลแบบดั้งเดิม ตัวอย่างเช่น คุณสามารถใช้โครงสร้างข้อมูลแฮชของ Redis เพื่อย้ายข้อมูลไปยังที่จัดเก็บข้อมูลได้โดยใช้โค้ดเพียงบรรทัดเดียว งานที่คล้ายกันในที่จัดเก็บข้อมูลแบบไม่มีโครงสร้างข้อมูลแฮชจะต้องใช้โค้ดหลายบรรทัดเพื่อแปลงจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง Redis มาพร้อมกับโครงสร้างข้อมูลดั้งเดิมและตัวเลือกมากมายในการจัดการและมีปฏิสัมพันธ์กับข้อมูลของคุณ โดยมีลูกค้าโอเพนซอร์สมากกว่าหนึ่งร้อยรายสำหรับนักพัฒนา Redis ภาษาที่รองรับ ได้แก่ Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go และอื่นๆ อีกมากมาย

การทำซ้ำและการเก็บข้อมูลซ้ำ

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

Redis ไม่ได้สร้างขึ้นเพื่อให้เป็นฐานข้อมูลที่คงทนและสม่ำเสมอ หากคุณต้องการฐานข้อมูลที่คงทนซึ่งเข้ากันได้กับ Redis โปรดพิจารณาใช้ Amazon MemoryDB for Redis เนื่องจาก MemoryDB ใช้บันทึกการทำรายการที่คงทนซึ่งจัดเก็บข้อมูลใน Availability Zone (AZ) หลายแห่ง คุณจึงสามารถใช้เป็นฐานข้อมูลหลักได้ MemoryDB สร้างขึ้นโดยเฉพาะเพื่อช่วยให้นักพัฒนาสามารถใช้ Redis API ได้โดยไม่ต้องกังวลเกี่ยวกับการจัดการแคชแยกต่างหาก ฐานข้อมูล หรือโครงสร้างพื้นฐานที่สำคัญ

ความพร้อมใช้งานและความสามารถในการปรับขนาดสูง

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

โอเพนซอร์ส

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

การแคช

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

การสนทนา การส่งข้อความ และการรอคิว

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

ลีดเดอร์บอร์ดของเกม

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

ที่เก็บเซสชัน

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

การสตรีมมิ่งสื่ออย่างเต็มรูปแบบ

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

ข้อมูลเชิงพื้นที่

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

แมชชีนเลิร์นนิ่ง

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

การวิเคราะห์แบบเรียลไทม์

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

การรองรับภาษาใน Redis

Redis รองรับภาษาโปรแกรมและโปรโตคอลชั้นนำ ได้แก่:

Python

Java

PHP

Redis เทียบกับ Memcached

ทั้ง Redis และ Memcached เป็นบริการจัดเก็บข้อมูลในหน่วยความจำแบบโอเพนซอร์ส Memcached ซึ่งเป็นบริการแคชบนหน่วยความจำแบบกระจายที่มีประสิทธิภาพสูงนั้นออกแบบมาเพื่อความเรียบง่าย ขณะที่ Redis มอบชุดคุณสมบัติที่หลากหลายเพื่อให้ใช้งานในรูปแบบต่างๆ ได้อย่างมีประสิทธิภาพ สำหรับการเปรียบเทียบคุณสมบัติแบบละเอียดเพื่อประกอบการตัดสินใจของคุณ โปรดดูที่ Redis เทียบกับ Memcached บริการทั้งสองชนิดทำงานร่วมกับฐานข้อมูลเชิงสัมพันธ์หรือคีย์-ค่าเพื่อเพิ่มประสิทธิภาพ เช่น MySQL, PostgreSQL, Aurora, Oracle, SQL Server, DynamoDB และอีกมากมาย

การใช้ Redis บน AWS

AWS นำเสนอบริการที่มีการจัดการอย่างเต็มรูปแบบสองชนิดที่เข้ากันได้กับ Redis ได้แก่ Amazon MemoryDB for Redis และ Amazon ElastiCache for Redis

Amazon MemoryDB for Redis

Amazon MemoryDB for Redis คือบริการฐานข้อมูลในหน่วยความจำที่มีความทนทานและใช้งานร่วมกันได้กับ Redis ซึ่งให้ประสิทธิภาพที่มีความเร็วสูงเป็นพิเศษ บริการนี้สร้างมาเพื่อแอปพลิเคชันสมัยใหม่ที่สร้างขึ้นด้วยสถาปัตยกรรมแบบไมโครเซอร์วิสโดยเฉพาะ Amazon MemoryDB จะจัดเก็บข้อมูลอย่างคงทนใน Availability Zone (AZ) หลายแห่งโดยใช้บันทึกการทำรายการแบบ Multi-AZ เพื่อช่วยให้การเปลี่ยนระบบเมื่อเกิดข้อผิดพลาด การกู้คืนฐานข้อมูล และการรีสตาร์ทโหนดทำได้อย่างรวดเร็ว เมื่อใช้ Amazon MemoryDB ข้อมูลทั้งหมดของคุณจะถูกจัดเก็บไว้ในหน่วยความจำ ซึ่งช่วยให้คุณพบกับเวลาแฝงในการอ่านเพียงระดับไมโครวินาที และเวลาแฝงในการเขียนระดับมิลลิวินาทีในหลักเดียว รวมถึงมีอัตราการประมวลผลด้วยความเร็วสูง 

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Amazon MemoryDB for Redis โปรดดูเอกสารประกอบ MemoryDB

Amazon ElastiCache for Redis

Amazon ElastiCache for Redis คือบริการแคชที่มีการจัดการอย่างเต็มรูปแบบ ซึ่งช่วยให้สามารถตั้งค่า ใช้งาน และปรับขนาดแคชบนระบบคลาวด์ได้อย่างง่ายดาย เมื่อใช้ ElastiCache for Redis คุณสามารถเร่งความเร็วของแอปพลิเคชันและปลดล็อกเวลาแฝงในการอ่านและเขียนระดับไมโครวินาทีได้โดยการแคชข้อมูลจากฐานข้อมูลหลักและที่จัดเก็บข้อมูล ElastiCache for Redis พร้อมให้ทดลองใช้งานฟรีได้ด้วย AWS Free Tier 

Amazon Elasticache for Redis

ลงชื่อสมัครใช้งาน

รับสิทธิ์เข้าถึง Amazon MemoryDB และ Amazon ElastiCache
เรียนรู้เกี่ยวกับ Amazon Elasticache for Redis

เริ่มต้นใช้งาน Amazon ElastiCache

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

เริ่มต้นสร้างด้วย Amazon MemoryDB

เริ่มต้นสร้างด้วยความช่วยเหลือจากคู่มือผู้ใช้