Redis là gì? Hướng dẫn cơ bản về cơ sở dữ liệu siêu nhanh

0 0 0

Người đăng: Gung Typical

Theo Viblo Asia

Nếu bạn đã từng nghe về Redis nhưng chưa thực sự hiểu nó là gì, đừng lo lắng! Bài viết này sẽ hướng dẫn bạn cách bắt đầu và sử dụng Redis trong quá trình phát triển phần mềm.

Redis là gì?

Redis (Remote Dictionary Server) là một kho dữ liệu mã nguồn mở, lưu trữ trong bộ nhớ (in-memory), có thể được sử dụng như một cơ sở dữ liệu, bộ nhớ đệm (cache) và hệ thống trung gian truyền tin (message broker).

Bạn có thể coi Redis như một kho lưu trữ dạng key-value siêu nhanh, nơi bạn có thể lưu trữ và truy xuất dữ liệu gần như ngay lập tức.

Không giống như các cơ sở dữ liệu truyền thống như PostgreSQL hay MySQL lưu trữ dữ liệu trên ổ đĩa, Redis giữ toàn bộ dữ liệu trong RAM. Điều này giúp nó có tốc độ xử lý cực nhanh, nhưng cũng có nghĩa là dữ liệu có thể bị mất nếu không được cấu hình để lưu trữ lâu dài.

Vì sao Redis phổ biến đến vậy?

  • Tốc độ cao: Vì Redis lưu dữ liệu trong bộ nhớ, nó có thể xử lý hàng triệu yêu cầu mỗi giây.
  • Đơn giản: Redis dựa trên cấu trúc key-value, rất dễ hiểu và sử dụng.
  • Linh hoạt: Hỗ trợ nhiều kiểu dữ liệu như chuỗi (string), danh sách (list), tập hợp (set), băm (hash), và cả dữ liệu không gian địa lý (geospatial data).
  • Khả năng caching mạnh mẽ: Redis thường được dùng để lưu cache các dữ liệu truy cập thường xuyên, giúp giảm tải cho cơ sở dữ liệu và tăng hiệu suất ứng dụng.
  • Message broker: Redis hỗ trợ mô hình publish/subscribe (pub/sub), rất phù hợp cho các ứng dụng thời gian thực (real-time applications).

Redis hoạt động như thế nào?

Về cơ bản, Redis hoạt động với các lệnh đơn giản. Chúng ta hãy xem xét một số lệnh cơ bản:

1. Lưu trữ và Truy xuất dữ liệu

SET name "Alice"
GET name
# Output: "Alice"

2. Làm việc với List

LPUSH tasks "Task 1"
LPUSH tasks "Task 2"
LRANGE tasks 0 -1
# Output: ["Task 2", "Task 1"]

3. Sử dụng Hash (Cặp key - value)

HSET user:1 name "Alice" age 25
HGET user:1 name
# Output: "Alice"

4. Thiết lập ngày hết hạn cho dữ liệu

SET session "user123" EX 60 # Expires in 60 seconds
TTL session # Check time left

Các trường hợp sử dụng phổ biến của Redis

  • Caching: Giảm số lượng truy vấn đến cơ sở dữ liệu bằng cách lưu trữ dữ liệu truy cập thường xuyên.
  • Lưu trữ phiên (Session Storage): Lưu trữ phiên làm việc của người dùng một cách nhanh chóng và tạm thời.
  • Phân tích dữ liệu thời gian thực (Real-time Analytics): Theo dõi chỉ số trực tiếp và đếm sự kiện theo thời gian thực.
  • Hàng đợi tin nhắn (Message Queues): Cung cấp hệ thống pub/sub để giao tiếp theo thời gian thực.
  • Giới hạn tốc độ (Rate Limiting): Kiểm soát số lượng yêu cầu API để ngăn chặn lạm dụng.

Cài đặt Redis

Nếu bạn muốn dùng thử Redis trên máy cục bộ của mình, hãy cài đặt bằng cách sau:

1. Trên Linux/Mac

brew install redis # Mac (using Homebrew)
sudo apt install redis # Ubuntu/Linux

2. Trên Windows

Sử dụng Redis Docker Image chính thức:

docker run --name redis -d -p 6379:6379 redis

Kết nối với Redis trong Code

1. Sử dụng Python

import redis
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'Alice')
print(r.get('name')) # Output: Alice

2. Sử dụng Node.js

const redis = require('redis');
const client = redis.createClient(); client.set('name', 'Alice', () => { client.get('name', (err, value) => { console.log(value); // Output: Alice client.quit(); });
});

Lời kết

Redis là một công cụ tuyệt vời dành cho các lập trình viên muốn tăng tốc ứng dụng, xử lý dữ liệu thời gian thực, và tối ưu hóa truy vấn cơ sở dữ liệu. Dù bạn đang xây dựng hệ thống caching, lưu trữ phiên, hay hệ thống nhắn tin real-time, Redis đều có thể đáp ứng nhu cầu của bạn.

Nếu bạn là một lập trình viên thích khám phá công nghệ mới như Redis, hãy thử LiveAPI. Đây là một công cụ giúp tạo tài liệu API tương tác một cách tự động, giúp bạn tiết kiệm thời gian nếu đang làm việc với một dự án thiếu tài liệu.

Vậy nên, nếu codebase của bạn chưa có tài liệu API, hãy thử LiveAPI ngay để tạo nhanh chóng!

Bình luận

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

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

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 132

- 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 85

- 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 117

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

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 100

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

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 920

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

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 375