/ / Tăng hiệu suất với bộ nhớ đệm trong bộ nhớ trong Nest.js

Tăng hiệu suất với bộ nhớ đệm trong bộ nhớ trong Nest.js

in memory cache nestjs cover

Xây dựng các ứng dụng web nhanh và đáng tin cậy là quan trọng hơn bao giờ hết trong bối cảnh kỹ thuật số ngày nay. Người dùng có kỳ vọng cao khi nói đến hiệu suất trang web. Thời gian tải chậm hoặc thời gian chết có thể dẫn đến sự thất vọng của khách hàng và thiệt hại về uy tín.


Một cách để đạt được các ứng dụng web nhanh và đáng tin cậy là sử dụng bộ nhớ đệm. Có nhiều loại bộ đệm khác nhau mà bạn có thể triển khai trong ứng dụng của mình, bao gồm bộ đệm trong bộ nhớ, bộ đệm của trình duyệt, bộ đệm cơ sở dữ liệu và bộ đệm CDN.

Bộ nhớ đệm là gì và bộ nhớ đệm trong bộ nhớ khác nhau như thế nào? Làm cách nào bạn có thể tăng hiệu suất của ứng dụng Nest.js bằng bộ nhớ đệm trong bộ nhớ?


Bộ nhớ đệm là gì?

Bộ nhớ đệm là quá trình lưu trữ dữ liệu được truy cập thường xuyên ở một vị trí tạm thời để cải thiện hiệu suất của một ứng dụng hoặc hệ thống. Dữ liệu được lưu trong bộ nhớ cache có thể nhanh chóng được truy xuất và phục vụ cho người dùng mà không cần phải truy xuất lại từ nguồn ban đầu.

Các ứng dụng sử dụng bộ nhớ đệm để phân phối nội dung nhanh hơn và hiệu quả hơn, dẫn đến trải nghiệm người dùng tốt hơn và giảm tải cho các hệ thống cơ bản. Các loại bộ nhớ đệm phổ biến nhất bao gồm bộ nhớ đệm trong bộ nhớ, bộ nhớ đệm CDN, bộ nhớ đệm trình duyệt và bộ nhớ đệm cơ sở dữ liệu.

Bộ nhớ đệm trong bộ nhớ là gì?

Bộ nhớ đệm trong bộ nhớ là một loại bộ nhớ đệm trong đó một ứng dụng tạm thời lưu trữ dữ liệu được truy cập thường xuyên trong bộ nhớ của máy chủ. Thay vì thực hiện các lệnh gọi cơ sở dữ liệu tốn kém mỗi khi ứng dụng xử lý yêu cầu truy cập dữ liệu, ứng dụng có thể tìm nạp dữ liệu đó từ bộ nhớ.

Lưu dữ liệu vào bộ nhớ đệm có nghĩa là ứng dụng truy cập dữ liệu nhanh hơn và điều này dẫn đến hiệu suất được cải thiện.

Cách triển khai bộ nhớ đệm trong ứng dụng Nest.js

Nest.js có hỗ trợ tích hợp cho bộ nhớ đệm bằng các trình điều khiển như Redis, Memcached, v.v. Tuy nhiên, để dễ hiểu, bài viết này sử dụng mô-đun bộ nhớ cache tích hợp sẵn mà Nest.js cung cấp.

Phần này giả định rằng bạn đã có ứng dụng Nest.js được tạo bằng lệnh Nest CLI: tổ mới [app name]. Để triển khai bộ nhớ cache trong bộ nhớ trong một điểm cuối, bạn phải có sẵn các tệp mô-đun, dịch vụ và bộ điều khiển hoặc tạo chúng bằng cách sử dụng tổ phát ra yêu cầu. Bạn có thể tìm hiểu thêm về tổ tạo trong tài liệu Nest CLI.

Bước đầu tiên để triển khai bộ đệm ẩn trong bộ nhớ là nhập tệp Mô-đun bộ đệm từ @nestjs/chung vào mô-đun điểm cuối của bạn như bên dưới:

 
import { Module, CacheModule } from '@nestjs/common';

@Module({
  imports: [CacheModule.register()],
})

export class ExampleModule {}

Tiếp theo, bạn cần nhập Dịch vụ bộ đệm và đưa nó vào dịch vụ Nest.js giao tiếp với cơ sở dữ liệu như MongoDB. Bạn có thể xem ví dụ mã sau thực hiện điều này như thế nào:

 
import { Injectable, CacheService } from '@nestjs/common';

@Injectable()
export class ExampleService {
  constructor(private readonly cacheService: CacheService) {}

  async getData(): Promise<any> {
    const cacheKey = 'my_data';
    let data = await this.cacheService.get(cacheKey);

    if (!data) {
      
      data = await this.fetchData();

      
      await this.cacheService.set(cacheKey, data, { ttl: 60 });
    }

    return data;
  }

  private async fetchData(): Promise<any> {
    
  }
}

Trong đoạn mã ví dụ trên, Ví dụDịch vụ sử dụng Dịch vụ bộ đệm như một sự phụ thuộc. Các lấy dữ liệu phương thức kiểm tra xem dữ liệu có sẵn trong bộ đệm hay không bằng cách sử dụng khóa (khóa bộ đệm), nếu dữ liệu không có trong bộ đệm, nó sẽ tiếp tục tìm nạp dữ liệu đó từ cơ sở dữ liệu và lưu vào bộ đệm để sử dụng sau.

Các Dịch vụ bộ đệm có một bộ phương thức lấy một đối tượng làm đối số. Trong trường hợp này, bạn có thể thấy giá trị {ttl:60} đặt thời gian tồn tại thành 60 giây. Điều này ngụ ý rằng dịch vụ sẽ tự động xóa dữ liệu được lưu trong bộ nhớ cache sau một phút.

Một số ưu điểm quan trọng của bộ nhớ đệm trong bộ nhớ bao gồm:

  • Cải thiện khả năng mở rộng: Bộ nhớ đệm trong bộ nhớ có thể giúp cải thiện khả năng mở rộng của ứng dụng bằng cách giảm tải cho nguồn dữ liệu cơ sở.
  • Thời gian đáp ứng nhanh hơn: Lưu dữ liệu thường xuyên truy cập vào bộ nhớ đệm trong bộ nhớ giúp giảm thời gian truy xuất dữ liệu, dẫn đến thời gian phản hồi nhanh hơn.
  • Trải nghiệm người dùng tốt hơn: Thời gian phản hồi nhanh hơn và khả năng mở rộng được cải thiện có thể giúp cung cấp trải nghiệm người dùng tốt hơn bằng cách giảm thời gian chờ đợi và cải thiện hiệu suất tổng thể của ứng dụng.
  • Giam gia: Bằng cách giảm tải cho nguồn dữ liệu, bộ nhớ đệm trong bộ nhớ có thể giúp giảm chi phí chạy ứng dụng.

Tối ưu hóa các ứng dụng Nest.js với bộ nhớ đệm trong bộ nhớ

Bộ nhớ đệm trong bộ nhớ đệm là một cách rất hiệu quả để cải thiện hiệu suất tổng thể của ứng dụng. Bạn đã biết cách triển khai bộ đệm ẩn trong bộ nhớ trong Nest.js và cách nó cải thiện khả năng mở rộng cũng như trải nghiệm người dùng. Nó cũng có thể cải thiện thời gian phản hồi và giảm chi phí chạy ứng dụng của bạn.

Hãy thử áp dụng khái niệm bộ nhớ đệm vào thực tế khi xây dựng ứng dụng hoặc API Nest.js tiếp theo của bạn.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *