Redis Cluster là một giải pháp phân tán giúp mở rộng khả năng lưu trữ và xử lý dữ liệu của Redis, đảm bảo tính khả dụng cao và hỗ trợ phân mảnh dữ liệu tự động. Việc triển khai Redis Cluster trên CentOS 7 giúp bạn tối ưu hiệu suất và đảm bảo hệ thống hoạt động ổn định ngay cả khi có node gặp sự cố. Cùng mình tìm hiểu cách cấu hình Redis Cluster trên CentOS 7 ngay sau đây.
Những điểm chính
- Khái niệm Redis Cluster: Hiểu được Redis Cluster là một giải pháp phân tán giúp mở rộng khả năng lưu trữ, nâng cao tính sẵn sàng và hiệu suất cho các ứng dụng.
- Yêu cầu cấu hình Redis Cluster trên CentOS 7: Biết được các yêu cầu cần thiết để bắt đầu cấu hình Redis Cluster, bao gồm hệ điều hành, số lượng server (master và slave), quyền truy cập SSH.
- Cách cấu hình Redis Cluster trên CentOS 7: Cung cấp hướng dẫn chi tiết, từ cài đặt Redis đến cấu hình master và slave server.
- Giới thiệu Vietnix: Giới thiệu về dịch vụ VPS của Vietnix, giúp triển khai và quản lý Redis Cluster một cách dễ dàng, hiệu quả.
Redis Cluster là gì?
Redis Cluster là một giải pháp phân tán giúp mở rộng khả năng lưu trữ và đảm bảo tính sẵn sàng cao của Redis. Đây là một hệ thống lưu trữ dữ liệu mã nguồn mở, hoạt động theo mô hình lưu trữ trong bộ nhớ (in-memory) với tùy chọn ghi đĩa để duy trì dữ liệu. Redis cung cấp nhiều tính năng quan trọng như giao dịch (transactions), pub/sub, tự động chuyển đổi khi có lỗi (failover) cùng nhiều chức năng hữu ích khác.
Trong môi trường production, Redis được khuyến nghị sử dụng trên Linux để đảm bảo hiệu suất và tính ổn định. Tuy nhiên, macOS cũng là một nền tảng phổ biến mà các nhà phát triển sử dụng để thử nghiệm và phát triển ứng dụng. Redis hỗ trợ ứng dụng khách (client) trên hầu hết các ngôn ngữ lập trình phổ biến, với nhiều ứng dụng được đề xuất chính thức trên trang web của Redis.
Để đảm bảo hệ thống hoạt động liên tục và dữ liệu không bị gián đoạn khi có sự cố, việc nhân bản dữ liệu tối thiểu trên 2 node là một giải pháp tối ưu. Điều này giúp duy trì tính sẵn sàng cao, đảm bảo hiệu suất và có phương án dự phòng khi gặp lỗi, đặc biệt quan trọng khi cơ sở dữ liệu ngày càng mở rộng.
Mô hình triển khai Redis Cluster trong bài hướng dẫn này gồm:
- Một máy Redis khác đóng vai trò slave server để sao lưu dữ liệu và hỗ trợ chuyển đổi khi cần thiết.
- Một máy Redis đóng vai trò master server để xử lý dữ liệu chính.

Yêu cầu để cấu hình Redis Cluster trên CentOS 7 đơn giản
Redis có thể hoạt động trên các bản phát hành trước và các bản phân phối Linux khác nhưng Vietnix khuyến nghị bạn sử dụng CentOS 7.
Đối với mục đích test, bạn có thể sử dụng các instance nhỏ vì không có khối lượng công việc thực sự để xử lý. Đối với các môi trường sản xuất lớn hơn thì sẽ cần các server lớn hơn.
- Hệ điều hành CentOS 7.
- Hai server có cấu hình tùy ý, một master chính và một hoặc nhiều slave.
- Truy cập vào máy chủ của bạn thông qua SSH với người dùng sudo non-root.
Hướng dẫn cách cấu hình Redis Cluster trên CentOS 7
Bước 1: Cài đặt Redis
Bắt đầu với server chứa master server. Bước đầu tiên bạn cần làm là cài đặt Redis. Tuy nhiên trước hết, bạn cần kích hoạt EPEL repository. Đây là kho lưu trữ Extra Packages for Enterprise Linux được phát triển bởi dự án Fedora. Mục đích nhằm cung cấp các gói bên thứ ba chất lượng cao cho doanh nghiệp dựa trên RHEL.
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
Nếu lệnh wget
không được nhận ra, bạn hãy thử chạy lệnh yum install wget
trước lệnh trên.
Sau đó bạn chạy lệnh:
sudo rpm -ivh epel-release-7-5.noarch.rpm
Và nhập:
sudo yum -y update
Lưu ý rằng quá trình này có thể mất một chút thời gian để hoàn thành. Sau đó, bạn có thể cài đặt Redis trên máy của mình bằng cách chạy lệnh:
sudo yum install redis -y
Sau khi quá trình cài đặt hoàn tất, bạn có thể bắt đầu dịch vụ của Redis bằng cách nhập lệnh sau:
sudo systemctl start redis.service
Bạn có thể kiểm tra trạng thái của Redis bằng lệnh:
sudo systemctl status redis.service
Output sẽ tương tự như sau:
Output
redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled)
Drop-In: /etc/systemd/system/redis.service.d
└─limit.conf
Active: active (running) since Wed 2015-07-22 02:26:31 EDT; 13s ago
Main PID: 18995 (redis-server)
CGroup: /system.slice/redis.service
Cuối cùng, hãy kiểm tra cài đặt Redis của bạn bằng cách chạy lệnh:
redis-cli ping
Kết quả in ra nên là một phản hồi PONG
. Điều đó chứng tỏ bạn đã cài đặt thành công Redis trên server của mình và có thể bắt đầu cấu hình. Bạn có thể thực hiện kiểm tra bổ sung cho cài đặt bằng cách chạy lệnh:
redis-benchmark -q -n 1000 -c 10 -P 5
Lệnh trên yêu cầu redis-benchmark
chạy ở chế độ im lặng, với tổng số request là 1000, 10 kết nối song song và 5 request pipeline. Để biết thêm thông tin về chạy benchmark cho Redis, bạn hãy gõ lệnh redis-benchmark --help
trong cửa sổ terminal. Lệnh này sẽ in ra thông tin hữu ích kèm theo các ví dụ.
Sau khi chạy benchmark hoàn tất, bạn sẽ thấy output tương tự như sau:
Output
PING_INLINE: 166666.67 requests per second
PING_BULK: 249999.98 requests per second
SET: 200000.00 requests per second
GET: 200000.00 requests per second
INCR: 200000.00 requests per second
LPUSH: 200000.00 requests per second
LPOP: 200000.00 requests per second
SADD: 200000.00 requests per second
SPOP: 249999.98 requests per second
LPUSH (needed to benchmark LRANGE): 200000.00 requests per second
LRANGE_100 (first 100 elements): 35714.29 requests per second
LRANGE_300 (first 300 elements): 11111.11 requests per second
LRANGE_500 (first 450 elements): 7194.24 requests per second
LRANGE_600 (first 600 elements): 5050.50 requests per second
MSET (10 keys): 100000.00 requests per second
Bạn sẽ cần lặp lại phần này cho slave server của Redis. Nếu muốn cấu hình thêm server, bạn có thể thiết lập nhiều slave server theo nhu cầu.
Redis đã được cài đặt và chạy trên hai node. Nếu output của bất kỳ node nào không tương tự như những gì được hiển thị ở trên, hãy lặp lại quá trình thiết lập và kiểm tra lại tất cả các yêu cầu đã đáp ứng hay chưa.
Bước 2: Cấu hình Redis Master
Sau khi Redis đã chạy trên cụm hai server, bạn cần chỉnh sửa các file cấu hình của chúng. Bạn sẽ thấy có sự khác biệt nhỏ giữa cấu hình master server và slave.
Hãy bắt đầu với master.
Mở file /etc/redis.conf
với trình chỉnh sửa văn bản bất kỳ:
sudo vi /etc/redis.conf
Bạn hãy chỉnh sửa các dòng sau.
Đặt giá trị hợp lý cho bộ hẹn giờ keepalive trong TCP:
tcp-keepalive 60
Cho phép server có thể truy cập được từ bất cứ ai trên web bằng cách chú thích dòng sau:
#bind 127.0.0.1
Redis có tốc độ xử lý rất nhanh nên kẻ tấn công có thể dễ dàng thực hiện cuộc tấn công brute force để đoán mật khẩu và xâm nhập vào hệ thống. Vì vậy, để tăng tính bảo mật cho Redis, bạn nên bỏ phần chú thích ở dòng requirepass
trong file cấu hình và thay bằng một mật khẩu phức tạp hoặc một passphrase phức tạp hơn:
requirepass your_redis_master_password
Tùy thuộc vào mục đích sử dụng, bạn có thể thay đổi dòng sau đây hoặc không. Với bài viết này, Vietnix giả định rằng không có khóa nào buộc phải xóa. Bạn hãy bỏ chú thích dòng này và đặt nó như sau:
maxmemory-policy noeviction
Cuối cùng, để thực hiện việc sao lưu dữ liệu, bạn cần bỏ chú thích và đặt các dòng như được hiển thị:
appendonly yes
appendfilename "appendonly.aof"
Lưu các thay đổi của bạn.
Khởi động lại dịch vụ Redis để tải lại các thay đổi cấu hình:
sudo systemctl restart redis.service
Khi master server đã sẵn sàng, bạn hãy chuyển sang cấu hình slave.
Bước 3: Cấu hình Redis Slave
Bạn cần thực hiện một số thay đổi để cho phép slave server kết nối với master instance:
Mở file /etc/redis.conf
với trình chỉnh sửa văn bản bất kỳ:
sudo vi /etc/redis.conf
Hãy chỉnh sửa các dòng bên trong file. Một số cài đặt sẽ giống như của master server.
Cho phép server có thể truy cập được từ bất kỳ ai trên web bằng cách chú thích dòng sau:
#bind 127.0.0.1
Slave server cũng cần có mật khẩu để có thể thực hiện các lệnh như INFO
từ master. Bỏ chú thích dòng này và đặt server password tại đây:
requirepass your_redis_slave_password
Bỏ chú thích dòng này và chỉ định địa chỉ IP của master server kèm theo cổng mà master server đang sử dụng. Mặc định, Redis sử dụng cổng 6379 để kết nối:
slaveof your_redis_master_ip 6379
Bỏ chú thích dòng masterauth
và cung cấp password/passphrase bạn đã thiết lập trước đó trên master server:
masterauth your_redis_master_password
Lưu các thay đổi này và thoát khỏi file. Tiếp theo, khởi động lại dịch vụ giống như bạn đã làm trên master server:
sudo systemctl restart redis.service
Lệnh này sẽ khởi động lại Redis và tải các file được sửa đổi.
Kết nối đến Redis bằng lệnh sau:
redis-cli -h 127.0.0.1 -p 6379
Xác thực bằng mật khẩu của slave server:
AUTH your_redis_slave_password
Bây giờ, bạn đang chạy một cụm Redis master-slave hoạt động tốt với cả hai máy đã được cấu hình đúng cách.
Để đảm bảo quá trình cấu hình và cài đặt 2 máy chủ chính (master) và máy chủ phụ (slave) diễn ra thuận lợi, bạn cần kiểm tra xem máy chủ có đáp ứng các yêu cầu cần thiết hay không. Một số yêu cầu quan trọng có thể kể đến như dung lượng ổ cứng, bộ xử lý, bộ nhớ và tốc độ truy cập. Nếu bạn đang tìm kiếm một giải pháp đáng tin cậy và phù hợp, VPS Việt Nam tại Vietnix là sự lựa chọn tuyệt vời cho bạn.
VPS Vietnix cung cấp các gói dịch vụ đa dạng và phong phú bao gồm VPS NVMe, VPS Giá Rẻ, VPS SSD, VPS AMD. Việc sử dụng dịch vụ của Vietnix không chỉ giúp đảm bảo rằng các yêu cầu cần thiết được đáp ứng mà còn giúp bạn tiết kiệm thời gian và chi phí trong quá trình triển khai. Liên hệ Vietnix để được tư vấn chi tiết và hoàn toàn miễn phí.
Bước 4: Xác minh Master-Slave Replication
Việc kiểm tra cài đặt của Redis trên server sẽ đảm bảo rằng cấu hình của bạn hoạt động đúng và master server đang kết nối đến các slave server của Redis. Bạn sẽ cần kết nối với Redis qua terminal trên master server.
Đầu tiên kết nối đến instance cục bộ chạy mặc định trên cổng 6379. Trong trường hợp bạn đã thay đổi cổng, hãy sửa lệnh với cổng tương ứng:
redis-cli -h 127.0.0.1 -p 6379
Sau đó, xác thực với Redis bằng mật khẩu bạn đặt khi cấu hình master:
AUTH your_redis_master_password
Bạn sẽ nhận được phản hồi là OK
. Bây giờ, bạn chỉ cần chạy lệnh:
INFO
Bạn sẽ thấy mọi thứ bạn cần về Redis master server. Đặc biệt là phần #Replication
, output sẽ hiển thị như sau:
Output
. . .
# Replication
role:master
connected_slaves:1
slave0:ip=111.111.111.222,port=6379,state=online,offset=407,lag=1
master_repl_offset:407
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:406
. . .
Chú ý đến dòng connected_slaves:1
. Dòng này cho biết instance khác đang nói chuyện với server master. Bạn cũng có thể thấy được địa chỉ IP của slave, port, trạng thái và một số thông tin khác.
Bây giờ, hãy xem phần #Replication
trên máy slave của bạn. Thực hiện giống như trên master server. Bạn hãy đăng nhập vào instance Redis, thực hiện lệnh INFO
và xem output:
Output
. . .
# Replication
role:slave
master_host:111.111.111.111
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:1401
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
. . .
Bạn có thể thấy rằng máy này có vai trò là slave đang giao tiếp với Redis master server và không có slaves của riêng mình.
Bước 5: Chuyển sang máy Slave
Kiến trúc này được thiết kế để đảm bảo rằng khi một server chính gặp sự cố, hệ thống sẽ tự động thay thế nó bằng một server khác để đảm bảo tính toàn vẹn dữ liệu và giảm thiểu thời gian gián đoạn của ứng dụng. Tuy nhiên, để đảm bảo rằng quá trình chuyển đổi diễn ra một cách suôn sẻ, bạn nên thực hiện việc chuyển đổi bằng tay.
Trên máy slave, bạn hãy kết nối đến Redis instance:
redis-cli -h 127.0.0.1 -p 6379
Xác thực với Redis bằng mật khẩu bạn đặt khi cấu hình slave:
AUTH your_redis_slave_password
Tiếp theo là tắt chế độ slave:
SLAVEOF NO ONE
Phản hồi phải là OK
. Sau đó, bạn hãy gõ lệnh:
INFO
Tìm phần # Replication
để tìm output sau:
Output
. . .
# Replication
role:master
connected_slaves:0
master_repl_offset:1737
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
. . .
Sau khi chuyển đổi, slaver đã trở thành server chính và sẵn sàng chấp nhận kết nối từ các máy khác (nếu có). Bạn có thể sử dụng server chính mới này làm dự phòng cho server chính cũ trong quá trình gỡ lỗi. Nếu bạn có nhiều slave phụ thuộc vào master ban đầu, chúng cũng phải được trỏ đến master mới bằng cách thực hiện những bước sau:
- Từ ứng dụng, bạn hãy gửi tất cả các yêu cầu cho Redis đến một máy slave.
- Trên máy slave, thực thi lệnh
SLAVEOF NO ONE
. Bắt đầu từ phiên bản Redis 1.0.0, lệnh này cho phép slave dừng sao chép dữ liệu và hoạt động như một master server. - Trên tất cả các slave còn lại (nếu có), chạy
SLAVEOF hostname port
để chỉ định các slave này ngừng sao chép từ master cũ, loại bỏ hoàn toàn dữ liệu đã lỗi thời và bắt đầu sao chép từ master mới. Hãy đảm bảo thay thếhostname
vàport
bằng các giá trị chính xác từ master mới. - Sau khi giải quyết lỗi thành công, bạn có thể quay trở lại sử dụng server ban đầu làm master nếu hệ thống yêu cầu.
Có nhiều cách để thực hiện các bước được giải thích ở trên. Tuy nhiên, việc tìm ra một giải pháp phù hợp và đảm bảo kiểm tra kỹ lưỡng trước khi có bất kỳ sự cố thực tế nào xảy ra là trách nhiệm của bạn.
Bước 6: Kết nối lại với Master
Bạn hãy kết nối lại với master server ban đầu. Trên slave server, đăng nhập vào Redis và thực thi lệnh sau:
SLAVEOF your_redis_master_ip 6379
Nếu chạy lệnh INFO
một lần nữa, bạn sẽ thấy mình đã trở lại thiết lập ban đầu.
Vietnix – Đối tác tin cậy cho giải pháp VPS chuyên nghiệp
Vietnix là nhà cung cấp dịch vụ VPS hàng đầu tại Việt Nam với hơn 10 năm kinh nghiệm trong lĩnh vực máy chủ. Được tin tưởng bởi hàng chục khách hàng từ cá nhân đến doanh nghiệp lớn, Vietnix cam kết mang đến hạ tầng công nghệ ổn định với thời gian uptime lên đến 99.9%.
Đội ngũ kỹ thuật chuyên nghiệp sẵn sàng hỗ trợ 24/7, đảm bảo mọi vấn đề kỹ thuật được giải quyết nhanh chóng. Với Vietnix, khách hàng không chỉ được tư vấn giải pháp phù hợp mà còn nhận được sự đồng hành toàn diện trong quá trình triển khai và vận hành hệ thống, giúp doanh nghiệp tập trung vào phát triển kinh doanh cốt lõi.
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Website: https://vietnix.vn/
Qua bài viết này, bạn đã nắm được cách cấu hình Redis Cluster trên CentOS 7 một cách đơn giản và hiệu quả. Redis Cluster giúp hệ thống của bạn mở rộng khả năng lưu trữ, tối ưu hiệu suất và đảm bảo tính sẵn sàng cao, đặc biệt là trong các môi trường yêu cầu xử lý dữ liệu lớn. Hy vọng bài viết này hữu ích và chúc bạn thành công!