Tips Implementing Backend Caching with Redis + Node.js

nhatquang816

New member
[TIẾNG VIỆT]:
** Thực hiện bộ nhớ đệm phụ trợ với redis + node.js **

Bộ nhớ đệm là một kỹ thuật có thể được sử dụng để cải thiện hiệu suất của ứng dụng web bằng cách lưu trữ dữ liệu được truy cập thường xuyên ở một vị trí tạm thời, chẳng hạn như trong bộ nhớ hoặc trên đĩa.Điều này có thể giúp giảm lượng thời gian cần thiết để lấy dữ liệu từ cơ sở dữ liệu, điều này có thể dẫn đến trải nghiệm người dùng tốt hơn.

Redis là một kho lưu trữ cấu trúc dữ liệu trong bộ nhớ, nguồn mở có thể được sử dụng làm bộ đệm.Nó được thiết kế để nhanh và hiệu quả, và nó hỗ trợ nhiều cấu trúc dữ liệu khác nhau, bao gồm chuỗi, danh sách, bộ, bộ được sắp xếp và băm.

Node.js là môi trường thời gian chạy JavaScript có thể được sử dụng để xây dựng các ứng dụng web có thể mở rộng.Nó được thiết kế để được điều khiển sự kiện, điều đó có nghĩa là nó có thể xử lý nhiều yêu cầu cùng một lúc.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách thực hiện bộ nhớ đệm phụ trợ với redis và node.js.Chúng tôi sẽ tạo một ứng dụng web đơn giản cho phép người dùng tìm kiếm sản phẩm.Sau đó, chúng tôi sẽ sử dụng redis để lưu trữ kết quả của các truy vấn tìm kiếm.Điều này sẽ cải thiện hiệu suất của ứng dụng bằng cách giảm lượng thời gian cần thiết để lấy dữ liệu từ cơ sở dữ liệu.

** Điều kiện tiên quyết **

Để làm theo với hướng dẫn này, bạn sẽ cần những điều sau đây:

* Một máy chủ Redis
* Môi trường phát triển Node.js
* Thư viện máy khách Redis cho Node.js

** Tạo ứng dụng web **

Chúng tôi sẽ bắt đầu bằng cách tạo một ứng dụng web đơn giản cho phép người dùng tìm kiếm sản phẩm.Chúng tôi sẽ sử dụng khung Express để tạo ứng dụng.

Đầu tiên, tạo một thư mục mới cho ứng dụng và khởi tạo dự án Node.js mới.

`` `
MKDIR Sản phẩm Tìm kiếm
CD Sản phẩm-Tìm kiếm
NPM init -Y
`` `

Tiếp theo, cài đặt Khung Express và Thư viện Máy khách Redis.

`` `
NPM Cài đặt Express Redis
`` `

Bây giờ, chúng ta có thể tạo tệp chính cho ứng dụng.Tệp này sẽ chứa mã cho máy chủ web.

`` `
// app.js

const express = yêu cầu ('express');
const redis = yêu cầu ('redis');

const app = express ();

// Kết nối với máy chủ Redis

const client = redis.CreateClient ();
client.connect ();

// Xác định các tuyến đường cho ứng dụng

app.get ('/sản phẩm', (req, res) => {
// Nhận truy vấn tìm kiếm từ yêu cầu

const truy vấn = req.query.q;

// Kiểm tra xem truy vấn tìm kiếm có nằm trong bộ đệm không

const cachedproducts = client.get ('sản phẩm:' + truy vấn);

// Nếu truy vấn tìm kiếm nằm trong bộ đệm, hãy trả về kết quả được lưu trong bộ nhớ cache

if (bộ nhớ cachedproducts) {
res.Send (bộ nhớ cacheDuctucts);
} khác {
// Nếu truy vấn tìm kiếm không có trong bộ đệm, hãy tìm kết quả từ cơ sở dữ liệu

const Products = [
{id: 1, tên: 'sản phẩm 1'},
{id: 2, tên: 'sản phẩm 2'},
{id: 3, tên: 'sản phẩm 3'},
];

// Lưu trữ kết quả trong bộ đệm

client.set ('sản phẩm:' + truy vấn, json.Stringify (sản phẩm));

// trả lại kết quả cho máy khách

res.Send (sản phẩm);
}
});

// Khởi động máy chủ web

app.listen (3000);
`` `

Bây giờ, chúng ta có thể khởi động máy chủ web bằng cách chạy lệnh sau.

`` `
Node app.js
`` `

Máy chủ web sẽ nghe trên cổng 3000. Bây giờ bạn có thể mở trình duyệt và điều hướng đến `http: // localhost: 3000/sản phẩm`.Bạn sẽ thấy một danh sách các sản phẩm được hiển thị trong trình duyệt.

** Bộ đệm kết quả tìm kiếm **

Trong phần trước, chúng tôi đã tạo một ứng dụng web đơn giản cho phép người dùng tìm kiếm sản phẩm.Chúng tôi cũng đã sử dụng redis để lưu trữ kết quả của các truy vấn tìm kiếm.Điều này sẽ cải thiện hiệu suất của ứng dụng bằng cách giảm lượng thời gian cần thiết để lấy dữ liệu từ cơ sở dữ liệu.

[ENGLISH]:
**Implementing Backend Caching with Redis + Node.js**

Caching is a technique that can be used to improve the performance of a web application by storing frequently accessed data in a temporary location, such as in memory or on disk. This can help to reduce the amount of time it takes to retrieve data from the database, which can lead to a better user experience.

Redis is an open-source, in-memory data structure store that can be used as a cache. It is designed to be fast and efficient, and it supports a variety of data structures, including strings, lists, sets, sorted sets, and hashes.

Node.js is a JavaScript runtime environment that can be used to build scalable web applications. It is designed to be event-driven, which means that it can handle multiple requests at the same time.

In this article, we will show you how to implement backend caching with Redis and Node.js. We will create a simple web application that allows users to search for products. We will then use Redis to cache the results of the search queries. This will improve the performance of the application by reducing the amount of time it takes to retrieve data from the database.

**Prerequisites**

To follow along with this tutorial, you will need the following:

* A Redis server
* A Node.js development environment
* The Redis client library for Node.js

**Creating the Web Application**

We will start by creating a simple web application that allows users to search for products. We will use the Express framework to create the application.

First, create a new directory for the application and initialize a new Node.js project.

```
mkdir product-search
cd product-search
npm init -y
```

Next, install the Express framework and the Redis client library.

```
npm install express redis
```

Now, we can create the main file for the application. This file will contain the code for the web server.

```
// app.js

const express = require('express');
const redis = require('redis');

const app = express();

// Connect to the Redis server

const client = redis.createClient();
client.connect();

// Define the routes for the application

app.get('/products', (req, res) => {
// Get the search query from the request

const query = req.query.q;

// Check if the search query is in the cache

const cachedProducts = client.get('products:' + query);

// If the search query is in the cache, return the cached results

if (cachedProducts) {
res.send(cachedProducts);
} else {
// If the search query is not in the cache, fetch the results from the database

const products = [
{ id: 1, name: 'Product 1' },
{ id: 2, name: 'Product 2' },
{ id: 3, name: 'Product 3' },
];

// Store the results in the cache

client.set('products:' + query, JSON.stringify(products));

// Return the results to the client

res.send(products);
}
});

// Start the web server

app.listen(3000);
```

Now, we can start the web server by running the following command.

```
node app.js
```

The web server will be listening on port 3000. You can now open a browser and navigate to `http://localhost:3000/products`. You should see a list of products displayed in the browser.

**Caching the Search Results**

In the previous section, we created a simple web application that allows users to search for products. We also used Redis to cache the results of the search queries. This will improve the performance of the application by reducing the amount of time it takes to retrieve data from the database.
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top