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.