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

ฐานข้อมูลในหน่วยความจำ Redis

Redis หมายถึง“ re Mote di ctionary** s**erver” Database Redis เป็นร้านค้าคีย์-ค่าขั้นสูง รองรับประเภทข้อมูลหลายชนิด: สตริงแฮชรายการชุดและชุดเรียงลำดับ นั่นเป็นเหตุผลว่าทำไมจึงมักถูกเรียกว่าเป็นเซิร์ฟเวอร์โครงสร้างข้อมูล Redis เขียนใน C. บทช่วยสอน Redis นี้ให้ความเข้าใจที่ดีเกี่ยวกับแนวคิดฐานข้อมูลในหน่วยความจำ Redis

ฐานข้อมูล NOSQL คืออะไร

ฐานข้อมูล NOSQL ได้รับความนิยมอย่างมาก บริษัท ขนาดใหญ่พึ่งพาพวกเขาเพื่อเก็บข้อมูลหลายร้อย petabytes และเรียกใช้การสืบค้นหลายล้านต่อวินาที แต่ฐานข้อมูล NOSQL คืออะไร? มันทำงานอย่างไรและทำไมมันจึงปรับขนาดได้ดีกว่าฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมมาก? เริ่มต้นด้วยการอธิบายปัญหาเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์อย่างรวดเร็วเช่น MySQL, Mariadb, SQL Server ฐานข้อมูลเชิงสัมพันธ์ถูกสร้างขึ้นเพื่อจัดเก็บข้อมูลเชิงสัมพันธ์อย่างมีประสิทธิภาพที่สุด คุณสามารถมีตารางสำหรับลูกค้าคำสั่งซื้อและผลิตภัณฑ์เชื่อมโยงกันอย่างมีเหตุผล องค์กรที่เข้มงวดนี้เหมาะสำหรับการจัดการข้อมูลของคุณ แต่มีค่าใช้จ่ายในการปรับขนาดได้ต่ำ พวกเขาต้องรักษาความสัมพันธ์เหล่านี้และนั่นเป็นกระบวนการที่เข้มข้นซึ่งต้องใช้หน่วยความจำและการคำนวณพลังงานจำนวนมาก ในขณะที่ฐานข้อมูล NOSQL สามารถปรับขนาดได้ทั้งแนวตั้งและแนวนอน คุณสามารถเปรียบเทียบสิ่งนี้กับอาคารการปรับขนาดในแนวตั้งหมายถึงการเพิ่มชั้นเพิ่มเติมลงในอาคารที่มีอยู่ในขณะที่การปรับขนาดแนวนอนหมายถึงการเพิ่มอาคารเพิ่มเติม การดัดแปลงสคีมาเป็นหนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุดในฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NOSQL ไม่จำเป็นต้องใช้สคีมาคงที่ซึ่งหมายถึงสเกลได้อย่างง่ายดายด้วยข้อมูลจำนวนมากและการโหลดผู้ใช้สูง

Redis เป็นฐานข้อมูล NOSQL หรือไม่?

นี่เป็นหนึ่งในคำถามยอดนิยมที่ถามทั่วชุมชนนักพัฒนาบนอินเทอร์เน็ต คำตอบง่ายๆคือใช่ Redis เป็นแหล่งข้อมูลโครงสร้างในหน่วยความจำโอเพ่นซอร์ส จริง ๆ แล้วมีฐานข้อมูล NOSQL 4 ประเภทที่แตกต่างกันซึ่งรวมถึง: ฐานข้อมูลเอกสาร, ร้านค้าคีย์-ค่า, ร้านค้าคอลัมน์กว้างและร้านค้ากราฟ ดังนั้นเซิร์ฟเวอร์ REDIS ฐานข้อมูลในหน่วยความจำซึ่งเป็นร้านค้าคีย์-ค่าอยู่ภายใต้หมวดหมู่ฐานข้อมูล NOSQL

เมื่อใดควรใช้ Redis?

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

  • Access Logger : เมื่อคุณต้องการบันทึกกิจกรรมจำนวนมากอย่างรวดเร็ว Redis เป็นทางออกที่ดี
  • การบำรุงรักษาเคาน์เตอร์ : คุณสามารถใช้ REDIS เพื่อรักษาจำนวนที่แตกต่างกันเช่น ดาวน์โหลดเคาน์เตอร์
  • สถานะของผู้ใช้ : เนื่องจากความเร็วคุณสามารถใช้เพื่อจัดเก็บสถานะ “ออนไลน์ / ออฟไลน์” ของผู้ใช้
  • คิว : คุณสามารถใช้ REDIS เพื่อรักษาคิวชั่วคราวเพื่อประมวลผลงานพื้นหลัง

Redis vs ร้านค้าคีย์-ค่าอื่น ๆ

ฐานข้อมูลในหน่วยความจำ REDIS นั้นเร็วมากและสามารถดำเนินการได้ประมาณ 1,10000 ชุดต่อวินาทีประมาณ 81000 ได้รับต่อวินาที รองรับประเภทข้อมูลหลายชนิด: สตริงแฮชรายการชุดและชุดเรียงลำดับ Redis เป็นเธรดเดี่ยวซึ่งช่วยให้สามารถปฏิบัติตามกรดได้ (atomicity ความสอดคล้องการแยกและความทนทาน) ฐานข้อมูล NOSQL อื่น ๆ โดยทั่วไปจะไม่ให้การปฏิบัติตามกรดหรือให้บางส่วน

ติดตั้ง Redis บน Ubuntu

หากต้องการติดตั้ง Redis บน Ubuntu ให้ไปที่เทอร์มินัลและพิมพ์คำสั่งต่อไปนี้

$ sudo apt-get update 
$ sudo apt-get install redis-server

คำสั่งต่อไปนี้จะเริ่มเซิร์ฟเวอร์ Redis

$ redis-server

ในการตรวจสอบว่าเซิร์ฟเวอร์ Redis กำลังทำงานอยู่หรือไม่คุณสามารถใช้คำสั่ง Redis-Cli เพื่อเชื่อมต่อได้หรือไม่

$ redis-cli 

คำสั่งนี้จะให้ผลลัพธ์ต่อไปนี้แก่คุณซึ่งหมายความว่าเซิร์ฟเวอร์กำลังทำงานอยู่และตอนนี้คุณเชื่อมต่อ

redis 127.0.0.1:6379>

ตอนนี้พิมพ์คำสั่ง ping ต่อไปนี้และคุณจะได้รับการตอบกลับจากเซิร์ฟเวอร์เป็น pong

redis 127.0.0.1:6379> ping
PONG

บทสรุป

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