กรณีศึกษา Redis

แนวคิด NoSQL

Miriam Antona

Software engineer

Redis - ภาพรวม

  • Remote Dictionary Server
  • ฐานข้อมูลแบบ key-value ที่ได้รับความนิยม
  • จัดเก็บโครงสร้างข้อมูลบน in-memory ด้วยความเร็วสูง
    • ชุดข้อมูลอยู่บน in-memory
    • รองรับการบันทึกข้อมูลลง disk ด้วย
  • นำไปใช้เป็น:
    • ฐานข้อมูล
    • Cache
    • Message broker

โลโก้ Redis

  • โอเพนซอร์ส
  • Redis Labs: พนักงานกว่า 400 คน
แนวคิด NoSQL

Redis - โครงสร้างข้อมูล

  • Strings
      SET name Ann
    
  • Lists
      RPUSH my_numbers 1 2 3
    
  • Sets
      SADD my_set 1 2 3
    
  • Hashes
      HMSET user:123 name Ann surname Smith
    
  • ...
แนวคิด NoSQL

Redis - โครงสร้างข้อมูล

  • Strings
      SET name Ann
    
  • Lists
      RPUSH my_numbers 1 2 3
    
  • Sets
      SADD my_set 1 2 3
    
  • Hashes
      HMSET user:123 name Ann surname Smith
    
  • ...
1 https://redis.io/glossary/redis-data-structures/
แนวคิด NoSQL

Redis - ฟีเจอร์

  • ออปเปอเรชันแบบ Atomic
  • Transactions
  • Lua scripting สำหรับออปเปอเรชันที่ซับซ้อน
  • ภาษาโปรแกรมมิง: Python, R, C#, Java, JavaScript, PHP...
  • Asynchronous replication
แนวคิด NoSQL

Redis - การใช้งานยอดนิยม

  • Caching (ผลลัพธ์คิวรี, รูปภาพ, ไฟล์...)
  • Session storage (โปรไฟล์ผู้ใช้, ข้อมูลรับรองตัวตน...)
  • แชท, ส่งข้อความ และคิว (ห้องแชท, คอมเมนต์แบบเรียลไทม์, ฟีดโซเชียลมีเดีย...)
  • การวิเคราะห์แบบเรียลไทม์ (โซเชียลมีเดีย, โฆษณา)
  • ลีดเดอร์บอร์ดเกม (จัดอันดับแบบเรียลไทม์)
  • ฯลฯ
แนวคิด NoSQL

Redis - บนคลาวด์

  • Amazon Web Services Elasticache for Redis
  • Microsoft Azure Cache for Redis บน Azure
  • Alibaba ApsaraDB for Redis บน Alibaba Cloud
แนวคิด NoSQL

Redis - ลูกค้า

โลโก้ลูกค้าบางส่วนของ Redis

แนวคิด NoSQL

กรณีศึกษา Editoo

โลโก้ Editoo

  • ธุรกิจขนาดเล็ก
  • เครื่องมือออนไลน์สำหรับสร้างนิตยสารแบบกำหนดเอง
    • ส่วนตัว
    • ธุรกิจ

ปัญหา:

  • Latency สูง เนื่องจากผู้ใช้งานเพิ่มขึ้น
  • RDBMS รองรับปริมาณที่เพิ่มขึ้นไม่ไหว

 

วิธีแก้: นำ Redis มาใช้

  • จัดเก็บ session ของผู้ใช้
  • Caching คิวรีฐานข้อมูล
แนวคิด NoSQL

กรณีศึกษา Editoo

ผลลัพธ์:

  • ลด downtime ได้
  • ประสิทธิภาพสูงขึ้น
  • วางแผนย้ายข้อมูลจากฐานข้อมูล relational ไปยัง Redis ในอนาคต
แนวคิด NoSQL

กรณีศึกษา Editoo

ผลลัพธ์:

  • ลด downtime ได้
  • ประสิทธิภาพสูงขึ้น
  • วางแผนย้ายข้อมูลจากฐานข้อมูล relational ไปยัง Redis ในอนาคต
1 https://redis.io/customers/
แนวคิด NoSQL

มาฝึกกันเถอะ!

แนวคิด NoSQL

Preparing Video For Download...