Hướng dẫn cài đặt và cấu hình Redis trên CentOS 8
1. Giới thiệu
Redis là một cơ sở dữ liệu dạng key-value lưu trữ trong bộ nhớ. Bạn có thể sử dụng Redis như một thay thế cho Memcached để lưu trữ các cặp key-value đơn giản, như một cơ sở dữ liệu NoSQL, hoặc thậm chí là một message broker với kiến trúc Pub-Sub.
Hướng dẫn này sẽ hướng dẫn các bước cài đặt, cấu hình, tinh chỉnh và bảo mật Redis trên CentOS 8 chi tiết.
2. Các bước chuẩn bị
Để thực hiện hướng dẫn này, bạn cần chuẩn bị sẵn:
- Một máy chủ CentOS 8 với dung lượng bộ nhớ tự do đủ lớn cho ứng dụng Redis. Khoảng 1 triệu cặp Key-Value nhỏ sử dụng 85 MB.
- Người dùng quyền sudo.
- Hệ thống CentOS đã được cập nhật.
3. Cài đặt Redis
Có 2 cách chính để cài đặt Redis trên CentOS 8:
Cách 1: Sử dụng gói từ kho lưu trữ chính thức của CentOS
$ sudo dnf install redis
Nhược điểm là phiên bản Redis trong kho này thường lỗi thời.
Cách 2: Sử dụng gói Redis mới nhất từ repo Remi
Repo Remi’s RPM là một repo đáng tin cậy và được cộng đồng sử dụng lâu dài cho CentOS. Gói Redis của nó thường mới hơn so với gói Redis của CentOS.
Các bước cài đặt:
- Bước 1: Kích hoạt repo Remi
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
- Bước 2: Liệt kê các phiên bản Redis có sẵn trong repo
$ dnf module list redis
Kết quả sẽ hiển thị các phiên bản Redis chính, ví dụ:
redis 5 [d] common [d] Redis persistent key-value database
redis remi-5.0 common [d] Redis persistent key-value database
redis remi-6.0 common [d] Redis persistent key-value database
- Bước 3: Cài đặt phiên bản mới nhất, ví dụ 6.0
Copy code
$ sudo dnf module install redis:remi-6.0 -y
Như vậy là đã cài đặt xong Redis mới nhất từ repo Remi.
Tiếp theo, cho phép dịch vụ Redis khởi động cùng hệ thống:
$ sudo systemctl enable redis.service
Khởi động dịch vụ Redis:
$ sudo systemctl start redis.service
4. Cấu hình Redis
File cấu hình mặc định của Redis nằm tại /etc/redis.conf
. Sử dụng editor (ví dụ nano) để mở và chỉnh sửa file này:
$ sudo nano /etc/redis.conf
Các thiết lập cấu hình quan trọng cần lưu ý bao gồm:
4.1 Cấu hình bộ nhớ
Để thiết lập dung lượng bộ nhớ tối đa mà Redis được sử dụng, tìm tới dòng maxmemory
và thiết lập giá trị phù hợp. Ví dụ:
maxmemory 128mb
Khi đạt ngưỡng maxmemory, Redis sẽ ngừng lưu dữ liệu mới. Để khắc phục việc này, bạn cần cấu hình chính sách xóa dữ liệu tự động.
4.2 Cấu hình chính sách lưu trữ
Có 2 cài đặt cơ bản liên quan tới chính sách lưu trữ của Redis:
maxmemory-policy
: Chính sách xóa dữ liệu khi đạt ngưỡng maxmemory. Giá trị phổ biến làallkeys-lru
hoặcvolatile-lru
.save
: Chính sách lưu dữ liệu xuống đĩa. Mặc định Redis sẽ lưu theo chu kỳ thời gian hoặc số lượng write.
Ví dụ cấu hình:
maxmemory-policy allkeys-lru
save 900 1
save 300 10
save 60 10000
Nếu bạn không muốn Redis lưu dữ liệu xuống đĩa, hãy comment những dòng save
.
4.3 Các thiết lập khác
Các thiết lập khác có thể cân nhắc bao gồm:
bind
: địa chỉ IP mà Redis sẽ lắng nghe và trả lời request. Mặc định là tất cả các interface.protected-mode
: cho phép truy cập Redis từ các host khác ngoài localhost.port
: cổng mặc định là 6379.tcp-backlog
: tăng giá trị mặc định 511 lên cao hơn.
Sau khi thiết lập xong các tùy chọn cấu hình, nhớ lưu lại file và khởi động lại Redis để các thay đổi có hiệu lực.
$ sudo systemctl restart redis.service
5. Tinh chỉnh hiệu năng hệ thống cho Redis
Để tối ưu hóa hiệu năng cho Redis, một số thiết lập cần điều chỉnh bao gồm:
- Tăng giới hạn kết nối TCP:
echo 'net.core.somaxconn = 512' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
- Enable overcommit memory:
echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
- Disable transparent huge pages:
Tạo script disable-transparent-hugepage.sh
:
#!/bin/bash
echo never > /sys/kernel/mm/transparent_hugepage/enabled
exit 0
Phân quyền và chỉnh sửa systemd service để chạy script này khi khởi động.
Copy code
sudo chown root:root /usr/bin/disable-transparent-hugepage.sh
sudo chmod 770 /usr/bin/disable-transparent-hugepage.sh
sudo nano /etc/systemd/system/disable-transparent-hugepage.service
# Thêm nội dung service
sudo systemctl enable disable-transparent-hugepage.service
6. Kiểm tra hoạt động của Redis
Sau khi cài đặt và cấu hình xong, cần kiểm tra lại xem Redis có hoạt động đúng hay không:
- Khởi động lại máy chủ để áp dụng các thay đổi
- Kiểm tra file log Redis
/var/log/redis/redis.log
, đảm bảo không có lỗi hay cảnh báo nào. - Sử dụng redis-cli để kết nối và thử nghiệm Redis:
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
Nếu Redis hoạt động bình thường, các lệnh SET
, GET
, INCR
… sẽ thực thi thành công.
7. Cấu hình truy cập Redis qua mạng riêng (tùy chọn)
Trong trường hợp triển khai Redis cho ứng dụng Production với nhiều máy chủ, bạn nên cấu hình Redis sử dụng mạng riêng để đảm bảo an toàn.
Các bước cơ bản bao gồm:
- Thiết lập mạng riêng cho các máy chủ cần truy cập Redis.
- Cập nhật firewalld cho phép kết nối từ mạng riêng tới Redis:
sudo firewall-cmd --permanent --zone=trusted --change-interface=ens7
- Chỉnh sửa cấu hình Redis để bind cả IP public và IP trong mạng riêng:
bind 127.0.0.1 192.168.1.100
- Tạo systemd service để trì hoãn khởi động Redis cho tới khi mạng riêng sẵn sàng.
- Khởi động lại Redis và kiểm tra kết nối từ máy chủ ứng dụng tới Redis.
Như vậy là đã hoàn thành chi tiết các bước hướng dẫn cài đặt và cấu hình Redis trên CentOS 8.