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

Hướng Dẫn Cấu Hình Redis Sentinel High Available full setup

0 0 5

Người đăng: TruongItt

Theo Viblo Asia

anh minh họa

Một số khái niệm

Redis Sentinel là một hệ thống giám sát và tự động hóa cao cấp (high availability) được tích hợp với Redis, một cơ sở dữ liệu NoSQL dạng key-value lưu trữ trong bộ nhớ. Sentinel hoạt động như một cụm các tiến trình giám sát các instance Redis, phát hiện sự cố (như master fail), và tự động thực hiện failover (chuyển đổi sang node khác làm master) để đảm bảo hệ thống không bị gián đoạn. Đây là giải pháp lý tưởng cho các hệ thống cần độ tin cậy cao và khả năng phục hồi tự động. Với việc triển khai Sentinel, bạn có thể đảm bảo Redis hoạt động liên tục, đặc biệt trong các kịch bản yêu cầu xử lý dữ liệu thời gian thực với Tính sẵn sàng cao, Giám sát, Failover tự động, Cân bằng tải

1. Chuẩn bị môi trường

Hệ điều hành: Ubuntu 22.04 Máy chủ:

  • server-1: 192.168.65.11 (Leader)
  • server-2: 192.168.65.12 (Replica)
  • server-3: 192.168.65.13 (Replica)

Cài đặt các gói cần thiết:

sudo apt install -y lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt update -y
sudo apt install -y redis redis-sentinel

2. Cấu hình Redis

Cấu hình Redis trên từng server

Chỉnh sửa tệp /etc/redis/redis.conf cho từng server:

  • Server 1 (Master):

    vi /etc/redis/redis.conf
    

    Thêm:

    bind 0.0.0.0
    masterauth truongitt # Mật khẩu để xác thực cụm
    requirepass truongitt # Mật khẩu để kết nối từ client
    
  • Server 2 và Server 3 (Replica):

    vi /etc/redis/redis.conf
    

    Thêm:

    bind 0.0.0.0
    masterauth truongitt
    requirepass truongitt
    replicaof 192.168.65.11 6379
    

Khởi động lại dịch vụ Redis:

systemctl restart redis-server

Truy cập và kiểm tra Redis

Kết nối vào Redis trên từng server:

redis-cli
auth truongitt

Thêm và kiểm tra key:

SET truongitt_xinchao '[{"name": "truongitt"}, {"name": "itt"}, {"name": "cntt"}]' GET truongitt_xinchao

redis 1

redis 2

redis 3

Thực hiện các lệnh trên trên cả ba server để xác nhận dữ liệu đồng bộ.

3. Cấu hình Redis Sentinel

Chỉnh sửa tệp /etc/redis/sentinel.conf trên cả ba server:

vi /etc/redis/sentinel.conf

Thêm nội dung sau:

protected-mode no
sentinel monitor mymaster 192.168.213.11 6379 2 # 2 server xác nhận fail mới bầu master mới
sentinel auth-pass mymaster truongitt
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

Khởi động và kiểm tra trạng thái Sentinel:

systemctl status redis-sentinel
tail -n 100 /var/log/redis/redis-sentinel.log

Chạy Sentinel thủ công để debug (nếu cần):

redis-server /etc/redis/sentinel.conf --sentinel

Kiểm tra trạng thái Sentinel từ port 26379:

redis-cli -p 26379 SENTINEL masters
redis-cli -p 26379 SENTINEL master mymaster
redis-cli -p 26379 SENTINEL slaves mymaster

redis 1 sentinel

4. Kiểm tra HA với Sentinel

Dừng dịch vụ Redis trên server 1 để kiểm tra failover:

systemctl stop redis-server

Kiểm tra trạng thái master mới từ server 2:

redis-cli -p 26379 SENTINEL master mymaster

server 2 change masster sentinel

Kết quả sẽ hiển thị server 2 hoặc server 3 được bầu làm master mới nếu đủ hai server xác nhận server 1 fail (theo sentinel monitor mymaster ... 2).

5. Chúc mừng

Chúc mừng bạn đã hoàn thành cấu hình Redis với Redis Sentinel HA mô hình này đảm bảo khả năng chịu lỗi cao nhờ cơ chế failover tự động của Sentinel, với dữ liệu được đồng bộ giữa các node server redis đơn giản hóa giám sát và tối ưu hóa hệ thống để duy trì hiệu suất ổn định !!!

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 142

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

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

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

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

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

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

1. Lời mở đầu.

0 0 385