Redis

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

Redis คืออะไร

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

Redis ทำงานอย่างไร

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

Redis เทียบกับ MemCached

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

Redis 5.0 มีอะไรใหม่บ้าง

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

Amazon ElastiCache for Redis

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

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

การจัดเก็บข้อมูลในหน่วยความจำ

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

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

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

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

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

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

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

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

ความพร้อมใช้งานสูงและความยืดหยุ่น

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

การขยาย

Redis เป็นโครงการโอเพนซอร์สที่ได้รับการรองรับจากชุมชนที่มีชีวิตชีวา ไม่มีการผูกขาดผู้จัดจำหน่ายหรือเทคโนโลยีเพราะ 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

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

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

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

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

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

Python

Java

PHP

Redis ที่ได้รับการจัดการแบบเต็มรูปแบบบน AWS

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

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

รับสิทธิ์เข้าถึง Amazon ElastiCache Free Tier
เรียนรู้เกี่ยวกับ Amazon Elasticache สำหรับ Redis

เรียนรู้ด้วยบทแนะนำง่ายๆ

สำรวจวิธีการ สร้างคลัสเตอร์ Redis
เริ่มต้นใช้งาน ElastiCache สำหรับ Redis

เริ่มสร้าง

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