NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
07/06/2023
Lượt xem

Cách cấu hình Redis Cluster trên CentOS 7 đơn giản

07/06/2023
16 phút đọc
Lượt xem

Đánh giá

5/5 - (110 bình chọn)

Redis là một kho lưu trữ dữ liệu key-value mã nguồn mở sử dụng mô hình lưu trữ in-memory. Ứng dụng này có tính năng giao dịch, pub/sub, tự động chuyển giao cùng với nhiều tính năng khác. Người sử dụng có thể gia tăng khả năng lưu trữ dữ liệu bằng Redis. Trong bài viết này sẽ hướng dẫn cách cấu hình Redis Cluster trên CentOS 7 giúp thiết lập một cụm Redis master-slave. 

Giới thiệu về Redis Cluster

Redis là một hệ thống lưu trữ dữ liệu mã nguồn mở theo mô hình lưu trữ trong bộ nhớ với khả năng ghi đĩa tùy chọn để duy trì dữ liệu. Nó bao gồm giao dịch, pub/sub và chức năng tự động chuyển đổi khi có lỗi, cùng với những chức năng khác.

Nên sử dụng Redis với Linux cho môi trường sản xuất, nhưng các nhà phát triển cũng đề cập đến OS X như một nền tảng mà họ phát triển và thử nghiệm. Redis có ứng dụng khách được viết bằng hầu hết các ngôn ngữ, với những ứng dụng được đề xuất nổi bật trên trang web của họ.

Giới thiệu về Redis Cluster
Giới thiệu về Redis Cluster

Trong môi trường production, nhân bản dữ liệu tối thiểu trên 2 node là cách tối ưu nhất. Điều này giúp bạn luôn có phương án dự phòng cho các trường hợp xuất liệu lỗi môi trường, nhất là khi cơ sở dữ liệu ngày càng tăng.

Theo bài hướng dẫn sẽ có mô hình như sau:

  • Một máy Redis dùng làm master server.
  • Một máy Redis khác dùng làm slave server.

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.

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 Phổ Thông, VPS Cao Cấp và VPS GPU. 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ế hostnameport 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.

Nếu bạn gặp vấn đề khi thực hiện các thao tác trên hoặc cảm thấy chúng quá phức tạp và cần sự trợ giúp, hãy sử dụng dịch vụ VPS của Vietnix. Bạn sẽ được hỗ trợ cài đặt một cách nhanh chóng và hiệu quả.

Vietnix là một trong những nhà cung cấp giải pháp lưu trữ số hàng đầu tại Việt Nam. Với hơn 11 năm kinh nghiệm và hơn 50.000 khách hàng cá nhân, doanh nghiệp bao gồm GTV, UB Group, iVIVU, Vietnamworks, SEOSONA, SAGO Media,… Vietnix tự tin cung cấp những dịch vụ tốt nhất và đáp ứng được nhu cầu của bạn. Không chỉ được khách hàng tin tưởng sử dụng, chất lượng của Vietnix còn được khẳng định qua giải thưởng “Thương hiệu Việt Nam xuất sắc 2022“. Còn chần chờ gì mà không liên hệ với đội ngũ Vietnix để trải nghiệm dịch vụ chất lượng ngay hôm nay.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng 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.

Lời kết

Qua bài viết trên, bạn đã biết cách cấu hình Redis Cluster trên CentOS 7. Bạn cũng đã thiết lập một môi trường bao gồm hai server, một làm Redis master và một slave được cấu hình để sao chép dữ liệu. Nếu master server bị offline hoặc mất dữ liệu, bạn có thể chuyển sang một trong các slave để khôi phục cho đến khi vấn đề được giải quyết. Nếu bạn gặp bất kỳ khó khăn gì trong quá trình thực hành, hãy để lại bình luận bên dưới bài viết để được hỗ trợ nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Chỉ số tăng trưởng

Điểm Desktop

99 (+61)

Điểm Mobile

99 (+61)

Core Web Vitals

Passed

Lĩnh vực

Media

Nguyễn Việt Dũng

19 Tháng 6 lúc 11:07

·

Cảm ơn anh em Vietnix đã tối ưu web “”cùi”” của mình! Đội ngũ chuyên nghiệp, làm việc ngay cả đêm muộn. Trước đây web chỉ được 28 điểm trên PC, giờ chạy nhanh hơn với 94 điểm trên cả desktop lẫn mobile.

Chỉ số tăng trưởng

Điểm Desktop

100 (+23)

Điểm Mobile

100 (+40)

Core Web Vitals

Passed

Lĩnh vực

Agency Marketing

Doãn Kỹ

24 Tháng 3 lúc 17:37

·

Đã tối ưu pagespeed tại Vietnix được 3 tháng, kết quả vẫn duy trì ở mức 98/100 trên cả mobile và desktop. Đội ngũ hỗ trợ support nhanh chóng và rất nhiệt tình khi mình yêu cầu. 

Chỉ số tăng trưởng

Điểm Desktop

100 (+49)

Điểm Mobile

97 (+70)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Nguyễn Việt Dũng

25 Tháng 2 lúc 07:37

·

[Respect]
Anh và anh Mạnh Palado Việt Nam xin chân thành cám ơn 2 đồng chí em Hưng Nguyễn CEO và Vietnix Trung CTO cùng anh em dev Vietnix đã hỗ trợ tối ưu tối ưu tốc độ website Palado .vn nha!!! Xanh lè, UX và UI đều được tối ưu vượt trội!!!
Lại nợ các em 1 ân huệ, nhất định sẽ repay 1 ngày gần nhất nhé ^^!!!!
#vietnix #toiuutocdo #palado
Trước khi tối ưu
Sau khi tối ưu
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG