Hướng Dẫn Triển Khai Dịch Vụ Redis Trên Môi Trường Linux

1. Tải mã nguồn và chuẩn bị đường dẫn làm việc

Thay vì tải thủ công qua trình duyệt, quy trình này sử dụng dòng lệnh để lấy gói nén trực tiếp từ kho lưu trữ chính thức. Chúng ta sẽ định nghĩa một biến phiên bản linh hoạt để dễ dàng quản lý:

TARGET_VER="7.2.3"
WORK_DIR="/opt/redis-build"
mkdir -p "$WORK_DIR"
cd "$WORK_DIR" || exit

wget "http://download.redis.io/releases/redis-${TARGET_VER}.tar.gz"

2. Giải nén và quá trình biên dịch

Giải phóng nội dung nén và di chuyển vào thư mục gốc của dự án để kích hoạt trình xây dựng (builder):

tar -xzvf "redis-${TARGET_VER}.tar.gz"
cd "redis-${TARGET_VER}" || exit

Cài đặt nhóm công cụ phát triển và các thư viện nền tảng required cho ngôn ngữ C:

yum groupinstall "Development Tools" -y
yum install gcc tcl pkgconf-pkg-config -y

Thực thi lệnh build với tùy chọn chỉ định thư mục đích (prefix) thay vì ghi đè lên hệ thống mặc định. Sử dụng đa luồng để tăng tốc độ compile:

make BUILD_TLS=no MALLOC=libc PREFIX=/opt/redis-build/dist -j$(nproc)
sudo make install PREFIX=/opt/redis-build/dist

Di chuyển tệp cấu hình mẫu ra vị trí chuyên biệt cho quản lý tập tin hệ thống:

cp redis.conf /opt/redis-build/dist/redis.conf

3. Kích hoạt dịch vụ và xử lý cổng mạng

Vào thư mục nhị phân đã build và khởi chạy daemon với chế độ chạy nền:

cd /opt/redis-build/dist/bin
nohup ./redis-server ../redis.conf &
sleep 2

Đảm bảo lớp bảo vệ mạng cho phép lưu lượng TCP đi qua cổng giao tiếp tiêu chuẩn (6379). Lệnh sau sử dụng chế độ vĩnh viễn và reload cấu hình ngay lập tức:

sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd --reload

Xác nhận khả năng đáp ứng phản hồi bằng utility client tích hợp sẵn:

./redis-cli -h 127.0.0.1 -p 6379 ping

Kết quả trả về chuỗi PONG xác nhận nút dữ liệu đang hoạt động trơn tru.

4. Tự động hóa quy trình khởi động cùng hệ thống

Phương pháp cũ dựa trên `chkconfig` đã lỗi thời trên các distro hiện đại. Chúng ta sẽ chuyển đổi sang định nghĩa đơn vị `systemd` để tận dụng cơ chế dependency và resource control tốt hơn:

sudo tee /etc/systemd/system/redis-node.service > /dev/null << 'UNIT_FILE'
[Unit]
Description=Redis Key-Value Data Store
After=syslog.target network-online.target

[Service]
Type=simple
User=root
ExecStart=/opt/redis-build/dist/bin/redis-server /opt/redis-build/dist/redis.conf
ExecStop=/opt/redis-build/dist/bin/redis-cli shutdown
Restart=always
RestartSec=5
PIDFile=/var/run/redis-node.pid
LimitNOFILE=10240

[Install]
WantedBy=multi-user.target
UNIT_FILE

Gia hạn quyền tải lại daemon và bật chế độ tự kích hoạt ở các level chạy chuẩn:

sudo systemctl daemon-reload
sudo systemctl enable redis-node.service
sudo systemctl start redis-node.service

Kiểm tra trạng thái realtime và xác nhận dịch vụ nằm trong danh sách kích hoạt:

systemctl is-active redis-node.service
systemctl list-unit-files | grep redis-node

Lưu ý rằng việc thay đổi biến đường dẫn thực thi và cấu hình phải khớp chính xác với thư mục cài đặt để tránh lỗi fail-fast khi khởi động lại hạt nhân hệ điều hành.

Thẻ: Redis Deployment Systemd Management Firewalld Configuration C Compiler Toolchain Linux Service Automation

Đăng vào ngày 8 tháng 8 lúc 05:29