- vừa được xem lúc

GIỚI THIỆU CƠ BẢN VỀ CACHE

0 0 13

Người đăng: Tờ Mờ Sáng học Lập trình

Theo Viblo Asia

🔑 ĐỊNH NGHĨA

Cache là một bộ nhớ tạm thời tốc độ cao được sử dụng để lưu trữ dữ liệu mà hệ thống có khả năng sẽ sử dụng lại trong tương lai gần.

Mục đích chính của cache là cải thiện hiệu suất hệ thống bằng cách giảm thời gian truy cập dữ liệu và giảm tải cho các nguồn dữ liệu chính (ví dụ: main memory, ổ cứng).

😍 VÍ DỤ

Ví dụ như bạn có một trang web phim tình cảm lãng mạn Nhật Bản.

  • Trên trang web này có thông tin của hàng nghìn diễn viên khác nhau.

  • Bạn có thể setup để cache thông tin của những diễn viên có nhiều người xem nhất 🌟

  • Khi đó tốc độ trả về khi người xem tìm kiếm phim của diễn viên ấy sẽ rất nhanh.

❌ KHI CHƯA CÓ CACHE

Mỗi khi trang web được load, một hoặc nhiều truy vấn Database được thực hiện để đọc dữ liệu.

Càng truy vấn nhiều tới Database thì hiệu suất của ứng dụng càng bị ảnh hưởng.

✅ KHI CÓ CACHE

Cache có thể giúp giảm thiểu vấn đề này (Nhưng không phải mọi trường hợp đều nên sử dụng cache, cụ thể mình sẽ chia sẻ ở bài viết sau)

Chúng ta có thể sử dụng cache như một lớp trung gian giữa Web Server và Database, dùng để lưu trữ dữ liệu tạm thời và nhanh hơn nhiều so với Database.

Việc này giúp cho hiệu suất hệ thống tốt hơn, giảm khối lượng công việc cho Database. Và khi cần thiết, chúng ta cũng có thể scale cache một cách độc lập.

⚙️ LUỒNG HOẠT ĐỘNG

GIỚI THIỆU CƠ BẢN VỀ CACHE

Nhìn vào hình minh họa ở trên, các bạn có thể thấy:

1. Sau khi nhận được request từ client, Web Server sẽ kiểm tra xem dữ liệu mà client cần có sẵn trong cache hay không.

2. Nếu có thì sẽ lấy luôn dữ liệu từ cache để xử lý (nếu cần) và return cho client.

3. Nếu không thì sẽ truy vấn vào Database để lấy dữ liệu.

4. Sau khi lấy được dữ liệu từ Database rồi thì lưu lại vào trong cache để sử dụng ở lần gọi sau.

2. Rồi trả ngược lại cho Web Server xử lý (nếu cần) và return cho client.

Đây là một trong những caching strategy phổ biến, được gọi là Read-through.

Ngoài ra còn có những caching strategy khác như: Cache-aside, Refresh-ahead, Write-through, Write-behind, Write-around. Các bạn có thể search để tìm hiểu thêm.

Các caching strategy sẽ được cân nhắc sử dụng dựa trên loại dữ liệu, kích thước dữ liệu và access pattern khác nhau.

👨‍💻 CODE TƯƠNG TÁC VỚI CACHE SERVER

Để tương tác với các cache server thì nhìn chung khá đơn giản. Vì hầu hết các cache server đều cung cấp API cho các ngôn ngữ lập trình phổ biến.

Ví dụ Memcached API có 2 hàm set()get() tương ứng với thao tác lưu dữ liệu vào cache, và lấy dữ liệu từ cache ra:

SECONDS = 1
cache.set('CACHE_KEY', 'Cache value', 3600 * SECONDS)
cache.get('CACHE_KEY')

LỜI NHẮN

Bạn có thể tham khảo thêm những bài viết trong series "System Design - Thiết kế Hệ thống" của mình trên blog này nhé. Hi vọng kiến thức này hữu ích với bạn.

Follow mình trên Facebook "CLB Lập trình - THPT Ngọc Tảo" hoặc kênh Youtube "Tờ Mờ Sáng học Lập trình" để cùng nhau học tập, chia sẻ những kiến thức công nghệ và lập trình hoàn toàn miễn phí nhé!

Facebook CLB Lập trình - THPT Ngọc Tảo: https://www.facebook.com/clb.it.ngoctao/

Youtube Tờ Mờ Sáng học Lập trình: https://www.youtube.com/@tmsangdev

Hẹn gặp lại 👋


BẠN CÓ THỂ ĐỌC THÊM

Clean Architecture: A Craftsman’s Guide to Software Structure and Design - Robert C. Martin

Designing Data – Insensitive applications - Martin Kleppmann

System Analysis and Design - Alan Dennis, Barbara Haley Wixom, Roberta M. Roth

System Design Interview - Alex Xu

Modern Systems Analysis and Design - Joseph Valacich, Joey George

Head First Design Patterns - Eric Freeman, Elisabeth Robson

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 82

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 111

- vừa được xem lúc

In-memory cache là gì?

Bài viết gốc: https://www.tranthanhdeveloper.com/2020/12/in-memory-cache-la-gi.html.

0 0 38

- vừa được xem lúc

Cache là gì và nguyên lý hoạt động của cache

Trong vài trở lại đây, công nghệ thông tin đã trở thành bàn đạp cho sự cải thiện mạnh mẽ cho vô số các loại hình kinh doanh. Đồng thời, các kiến trúc phần mềm ngày càng trở nên phức tạp và số lượng ng

0 0 257

- vừa được xem lúc

Tăng tốc website: Sử dụng Page Cache - Application Cache

Như đã đề cập trong Lời mở đầu, trong phần này tôi sẽ đề cập tới cách thực hiện page cache đầu tiên đó là Application Cache - tôi tạm gọi như vậy, với ý nghĩa là thực hiện cache ngay trong web applica

0 0 55

- vừa được xem lúc

Tăng tốc website: Sử dụng Page Cache - Lời mở đầu

Bài đầu tiên trong series này, tôi sẽ điểm lại một vài nội dung cơ bản nhất để các bạn chưa biết đến kỹ thuật Page Cache cũng có thể nắm được. Các bạn nào đã biết thì cũng có thể đọc cho vui rồi cho t

0 0 41