Nghiên cứu tình huống Redis

Các khái niệm NoSQL

Miriam Antona

Software engineer

Redis - tổng quan

  • Remote Dictionary Server
  • Cơ sở dữ liệu key-value phổ biến
  • Kho dữ liệu trong bộ nhớ nhanh
    • Tập dữ liệu trong bộ nhớ
    • Cũng cho phép lưu bền trên đĩa
  • Dùng như:
    • Cơ sở dữ liệu
    • Bộ nhớ đệm (cache)
    • Trình môi giới thông điệp

Logo Redis

  • Mã nguồn mở
  • Redis Labs: 400+ nhân viên
Các khái niệm NoSQL

Redis - cấu trúc dữ liệu

  • Chuỗi (Strings)
      SET name Ann
    
  • Danh sách (Lists)
      RPUSH my_numbers 1 2 3
    
  • Tập hợp (Sets)
      SADD my_set 1 2 3
    
  • Băm (Hashes)
      HMSET user:123 name Ann surname Smith
    
  • ...
Các khái niệm NoSQL

Redis - cấu trúc dữ liệu

  • Chuỗi (Strings)
      SET name Ann
    
  • Danh sách (Lists)
      RPUSH my_numbers 1 2 3
    
  • Tập hợp (Sets)
      SADD my_set 1 2 3
    
  • Băm (Hashes)
      HMSET user:123 name Ann surname Smith
    
  • ...
1 https://redis.io/glossary/redis-data-structures/
Các khái niệm NoSQL

Redis - tính năng

  • Phép toán nguyên tử
  • Giao dịch
  • Lua scripting cho thao tác phức tạp
  • Ngôn ngữ lập trình: Python, R, C#, Java, JavaScript, PHP...
  • Sao chép bất đồng bộ
Các khái niệm NoSQL

Redis - các cách dùng phổ biến

  • Caching (kết quả truy vấn, hình ảnh, tệp...)
  • Lưu trữ phiên (hồ sơ người dùng, thông tin xác thực...)
  • Chat, nhắn tin, và hàng đợi (phòng chat, bình luận thời gian thực, bảng tin mạng xã hội...)
  • Phân tích thời gian thực (phân tích mạng xã hội, quảng cáo)
  • Bảng xếp hạng game (danh sách xếp hạng thời gian thực)
  • v.v.
Các khái niệm NoSQL

Redis - trên đám mây

  • Amazon Web Services Elasticache for Redis
  • Microsoft Azure Cache for Redis trên Azure
  • Alibaba ApsaraDB for Redis trên Alibaba Cloud
Các khái niệm NoSQL

Redis - khách hàng

Logo của một số khách hàng Redis

Các khái niệm NoSQL

Nghiên cứu tình huống Editoo

Logo Editoo

  • Doanh nghiệp nhỏ
  • Công cụ trực tuyến tạo tạp chí tùy biến
    • cá nhân
    • doanh nghiệp

Vấn đề:

  • Độ trễ cao do nhiều người dùng ứng dụng hơn
  • RDBMS của họ không xử lý được mức tăng đó

 

Giải pháp: Dùng Redis

  • Lưu phiên người dùng
  • Cache truy vấn cơ sở dữ liệu
Các khái niệm NoSQL

Nghiên cứu tình huống Editoo

Kết quả:

  • Giảm thời gian ngừng hoạt động
  • Hiệu năng cao hơn
  • Dự định chuyển dần từ cơ sở dữ liệu quan hệ sang Redis
Các khái niệm NoSQL

Nghiên cứu tình huống Editoo

Kết quả:

  • Giảm thời gian ngừng hoạt động
  • Hiệu năng cao hơn
  • Dự định chuyển dần từ cơ sở dữ liệu quan hệ sang Redis
1 https://redis.io/customers/
Các khái niệm NoSQL

Cùng luyện tập nào!

Các khái niệm NoSQL

Preparing Video For Download...