Redis là kho lưu trữ dữ liệu khóa-giá trị trong bộ nhớ mã nguồn mở và phổ biến. Nó hỗ trợ nhiều cấu trúc dữ liệu như Hash, List, Set, String và nhiều cấu trúc khác nữa. Redis được thiết kế để chỉ chạy trong môi trường đáng tin cậy, có thể được sử dụng làm cơ sở dữ liệu, bộ nhớ đệm và môi giới tin nhắn. Redis được biết đến rộng rãi nhờ khả năng hỗ trợ rộng rãi, hiệu suất cao, tính khả dụng cao và tính linh hoạt.
Bạn có thể cài đặt Redis dưới dạng độc lập cho triển khai nhỏ. Đối với triển khai lớn, họ cung cấp các thành phần bổ sung như Redis Sentinel cho tính khả dụng cao và Redis Cluster để phân vùng dữ liệu trên nhiều máy chủ nút Redis.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Redis trên Rocky Linux. Để cài đặt dễ dàng, bạn sẽ cài đặt Redis từ kho lưu trữ AppStream, nhưng nếu bạn muốn có phiên bản Redis mới nhất (có nghĩa là nhiều tính năng hơn), bạn có thể cài đặt Redis từ nguồn bằng cách biên dịch nó vào hệ thống của mình.
1. Để cài đặt Redis từ kho lưu trữ AppStream, hãy thực hiện lệnh dnf bên dưới.
Bây giờ hãy nhập 'Y' để cài đặt gói Redis.
2. Sau khi cài đặt hoàn tất, hãy bật redis để chạy khi khởi động hệ thống bằng lệnh systemctl bên dưới.
3. Sau đó, thực hiện lệnh sau để khởi động dịch vụ Redis và kiểm tra trạng thái của nó.
Nếu dịch vụ Redis đang hoạt động và chạy, bạn sẽ thấy đầu ra tương tự như bên dưới.
Đối với giai đoạn tiếp theo, bạn sẽ cấu hình Redis như trong phần bên dưới.
1. Trước tiên, bạn phải cài đặt một số gói phụ thuộc trước khi biên dịch Redis.
Thêm kho lưu trữ EPEL vào hệ thống của bạn bằng lệnh sau.
Cài đặt gói nhóm 'Công cụ phát triển' và một số gói bổ sung để biên dịch Redis.
Sau đó, thực hiện lệnh sau để cài đặt các gói openssl-devel (để hỗ trợ TLS) và systemd-devel (để hỗ trợ systemd).
2. Sau khi cài đặt tất cả các gói hoàn tất, hãy thực hiện lệnh sau để tạo người dùng và nhóm mới 'redis'.
Tiếp theo, tạo một thư mục dữ liệu mới cho Redis tại '/var/lib/redis' và thay đổi quyền sở hữu thư mục đó thành người dùng 'redis' bằng lệnh sau.
Và bạn đã sẵn sàng để biên dịch và cài đặt redis.
3. Thay đổi thư mục làm việc thành '/usr/src' và tải xuống phiên bản ổn định mới nhất của mã nguồn Redis bằng lệnh wget như bên dưới.
Bây giờ hãy giải nén mã nguồn Redis và thay đổi thư mục thành thư mục 'redis-*'.
4. Biên dịch mã nguồn Redis bằng lệnh sau.
Các tùy chọn bạn phải biết:
Bài kiểm tra này sẽ mất một thời gian. Khi hoàn tất, bạn sẽ thấy đầu ra tương tự như bên dưới.
Đảm bảo rằng tất cả các bài kiểm tra đã vượt qua mà không có bất kỳ lỗi nào.
5. Tiếp theo, bạn có thể cài đặt redis bằng cách thực hiện lệnh bên dưới.
Lệnh Redis sẽ có tại thư mục '/usr/bin', như chúng tôi chỉ định trong tùy chọn 'PREFIX=' ở trên cùng.
Bạn có thể xác minh cài đặt Redis bằng cách chạy các lệnh sau.
Nếu cài đặt thành công, bạn sẽ thấy phiên bản Redis 6.2 như ảnh chụp màn hình bên dưới.
1. Nếu bạn đang cài đặt Redis từ mã nguồn, hãy thực hiện lệnh sau để tạo thư mục cấu hình Redis mới.
Bây giờ hãy sao chép cấu hình mẫu 'redis.conf' vào thư mục '/etc/redis'.
2. Chạy lệnh nano bên dưới để chỉnh sửa tệp cấu hình 'redis.conf'.
Thay đổi địa chỉ 'bind' mặc định bằng địa chỉ IP mạng cục bộ của bạn.
Bỏ ghi chú tùy chọn 'daemonize' và đổi giá trị thành 'yes' để cho phép Redis chạy như một daemon.
Bỏ ghi chú tùy chọn 'supervised' và đổi giá trị thành 'systemd'. Tùy chọn này cho phép Redis tương tác với cây giám sát hệ thống.
Chỉ định thư mục làm việc và dữ liệu cho Redis vào thư mục '/var/lib/redis'. Tất cả các cơ sở dữ liệu Redis sẽ có trong thư mục này.
Bỏ ghi chú tùy chọn 'requirepass' và thay đổi giá trị bằng mật khẩu của bạn, đồng thời đảm bảo sử dụng mật khẩu mạnh và dài. Với tùy chọn này, mọi tương tác của máy khách sẽ yêu cầu mật khẩu để xác thực.
Lưu cấu hình bằng cách nhấn nút 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter'.
1. Thực hiện lệnh sau để thay đổi thư mục làm việc thành '/usr/src/redis-*/utils' và sao chép tệp dịch vụ systemd vào '/etc/systemd/system'.
2. Chỉnh sửa cấu hình 'redis-server.service' bằng nano.
Thay đổi một số tùy chọn bằng cách sử dụng cấu hình như bên dưới.
Nhấn nút 'Ctrl+x', nhập 'y' và nhấn 'Enter' để lưu và thoát.
3. Bây giờ hãy thực hiện lệnh sau để tải lại systemd-manager và áp dụng cấu hình mới.
4. Sau đó, thực hiện lệnh sau để cho phép dịch vụ redis tự động chạy khi khởi động hệ thống.
5. Khởi động dịch vụ redis và kiểm tra trạng thái của nó bằng cách chạy lệnh sau.
Nếu dịch vụ Redis của bạn đang hoạt động và chạy, bạn sẽ thấy đầu ra tương tự như bên dưới.
1. Chỉnh sửa cấu hình redis 'redis.conf' bằng lệnh nano.
2. Để tắt hoàn toàn lệnh Redis, bạn có thể định nghĩa tên lệnh theo sau là dấu ngoặc kép trống như bên dưới.
3. Để đổi tên lệnh Redis, bạn có thể định nghĩa tên lệnh theo sau lệnh mới để thay thế như bên dưới.
Lưu cấu hình bằng cách nhấn nút 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter'.
4. Tiếp theo, thực hiện lệnh sau để khởi động lại dịch vụ redis và áp dụng cấu hình.
Đối với bước tiếp theo, bạn sẽ xác minh xác thực Redis để đảm bảo nó hoạt động, sau đó bạn sẽ xác minh bằng một số lệnh mà bạn vừa đổi tên.
Hoặc bạn có thể chỉ định máy chủ và cổng bằng lệnh như bên dưới.
2. Tiếp theo, xác thực bản thân bằng lệnh 'auth' như bên dưới.
Nếu xác thực thành công, bạn sẽ thấy thông báo 'OK'.
3. Chạy lệnh 'ping' bên dưới. Lệnh này sẽ đảm bảo xác thực và kết nối với máy chủ Redis thành công.
Nếu kết nối thành công, bạn sẽ thấy thông báo 'PONG'
4. Tiếp theo, hãy xác minh một số lệnh mà bạn đã vô hiệu hóa hoặc đổi tên ở trên cùng.
Chạy lệnh 'CONFIG' như bên dưới.
Và bạn sẽ thấy thông báo lỗi 'ERR unknown command 'CONFIG'' vì lệnh 'CONFIG' mặc định đã được thay thế bằng 'CONFIG_ME_NOW'.
Bây giờ hãy chạy lệnh 'CONFIG_ME_NOWW' như bên dưới.
Nếu cài đặt thành công, bạn sẽ thấy đầu ra tương tự như ảnh chụp màn hình bên dưới.
Ngoài ra, hãy thử chạy một số lệnh bị vô hiệu hóa 'FLUSHDB' và 'DEBUG', và bạn sẽ nhận được cùng một thông báo lỗi như 'Lệnh không xác định ERR'.
Bạn có thể cài đặt Redis dưới dạng độc lập cho triển khai nhỏ. Đối với triển khai lớn, họ cung cấp các thành phần bổ sung như Redis Sentinel cho tính khả dụng cao và Redis Cluster để phân vùng dữ liệu trên nhiều máy chủ nút Redis.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Redis trên Rocky Linux. Để cài đặt dễ dàng, bạn sẽ cài đặt Redis từ kho lưu trữ AppStream, nhưng nếu bạn muốn có phiên bản Redis mới nhất (có nghĩa là nhiều tính năng hơn), bạn có thể cài đặt Redis từ nguồn bằng cách biên dịch nó vào hệ thống của mình.
Điều kiện tiên quyết
- Hệ thống Rocky Linux. Đảm bảo tất cả các gói và kho lưu trữ được cập nhật lên phiên bản mới nhất
- Người dùng root hoặc người dùng có quyền root. Bạn sẽ sử dụng người dùng này để cài đặt các gói mới và chỉnh sửa cấu hình hệ thống.
Cài đặt Redis từ Kho lưu trữ AppStream
Nếu bạn muốn cài đặt Redis dễ dàng mà không cần biên dịch, bạn có thể cài đặt từ kho lưu trữ AppStream do Rocky Linux cung cấp. Hiện tại, kho lưu trữ AppStream của Rocky Linux cung cấp Redis phiên bản 5.x. Và nếu bạn muốn cài đặt Redis phiên bản 6.x, bạn phải cài đặt thủ công.1. Để cài đặt Redis từ kho lưu trữ AppStream, hãy thực hiện lệnh dnf bên dưới.
Mã:
sudo dnf install redis
2. Sau khi cài đặt hoàn tất, hãy bật redis để chạy khi khởi động hệ thống bằng lệnh systemctl bên dưới.
Mã:
sudo systemctl enable redis
Mã:
sudo systemctl start redis
sudo systemctl status redis
Đối với giai đoạn tiếp theo, bạn sẽ cấu hình Redis như trong phần bên dưới.
Cài đặt Redis từ Nguồn
Nếu bạn muốn có phiên bản Redis mới nhất, bạn có thể cài đặt thủ công từ mã nguồn. Ưu điểm chính của việc cài đặt phiên bản Redis mới nhất là bạn luôn nhận được các tính năng và gói mới nhất. Hiện tại, hãy tải phiên bản ổn định mới nhất 6.2 và bạn sẽ cài đặt nó ở giai đoạn này.1. Trước tiên, bạn phải cài đặt một số gói phụ thuộc trước khi biên dịch Redis.
Thêm kho lưu trữ EPEL vào hệ thống của bạn bằng lệnh sau.
Mã:
sudo dnf install epel-release -y
Cài đặt gói nhóm 'Công cụ phát triển' và một số gói bổ sung để biên dịch Redis.
Mã:
sudo dnf group install "Công cụ phát triển" -y
sudo dnf install jemalloc lua hireis linenoise -y
Mã:
sudo dnf install openssl-devel systemd-devel -y
Mã:
sudo adduser --system --user-group --no-create-home --shell /sbin/nologin redis
Mã:
sudo mkdir -p /var/lib/redis
sudo chown -R redis:redis /var/lib/redis
3. Thay đổi thư mục làm việc thành '/usr/src' và tải xuống phiên bản ổn định mới nhất của mã nguồn Redis bằng lệnh wget như bên dưới.
Mã:
cd /usr/src/
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
Mã:
tar -xzvf redis-6.2.5.tar.gz
cd redis-*/
4. Biên dịch mã nguồn Redis bằng lệnh sau.
Mã:
sudo make BUILD_TLS=yes USE_SYSTEMD=yes
- BUILD_TLS = bật hỗ trợ TLS cho Redis,
- USE_SYSTEMD = bật hỗ trợ cho systemd, hệ thống Rocky Linux sử dụng systemd làm hệ thống khởi tạo của nó.
Mã:
sudo make test
Mã:
\o/ Tất cả các bài kiểm tra đã vượt qua mà không có lỗi!
Dọn dẹp: có thể mất một thời gian... OK
make[1]: Thoát khỏi thư mục '/usr/src/redis-6.2.5/src'
5. Tiếp theo, bạn có thể cài đặt redis bằng cách thực hiện lệnh bên dưới.
Mã:
sudo make PREFIX=/usr install
Bạn có thể xác minh cài đặt Redis bằng cách chạy các lệnh sau.
Mã:
redis-server --version
redis-cli --version
Cấu hình Redis
Ở giai đoạn này, bạn sẽ cấu hình cài đặt Redis. Bạn có thể triển khai giai đoạn này cho tất cả các cài đặt Redis (cài đặt từ nguồn hoặc cài đặt từ kho lưu trữ AppStream).1. Nếu bạn đang cài đặt Redis từ mã nguồn, hãy thực hiện lệnh sau để tạo thư mục cấu hình Redis mới.
Mã:
mkdir -p /etc/redis
Mã:
cp /usr/src/redis-*/redis.conf /etc/redis/redis.conf
Mã:
sudo nano /etc/redis/redis.conf
Thay đổi địa chỉ 'bind' mặc định bằng địa chỉ IP mạng cục bộ của bạn.
Mã:
bind 127.0.0.1
Mã:
daemonize yes
Mã:
supervised systemd
Mã:
dir /var/lib/redis
Mã:
requirepass AJds9dshsd8wqejdw82389r3ej3983jk
Cấu hình tệp dịch vụ cho Redis
Để cài đặt Redis thủ công, bạn phải thiết lập tệp dịch vụ Redis.1. Thực hiện lệnh sau để thay đổi thư mục làm việc thành '/usr/src/redis-*/utils' và sao chép tệp dịch vụ systemd vào '/etc/systemd/system'.
Mã:
cd /usr/src/redis-*/utils/
cp systemd-redis_server.service /etc/systemd/system/redis-server.service
Mã:
sudo nano /etc/systemd/system/redis-server.service
Mã:
[Unit]
...
AssertPathExists=/var/lib/redis
[Service]
...
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=alway
...
User=redis
Group=redis
WorkingDirectory=/var/lib/redis
3. Bây giờ hãy thực hiện lệnh sau để tải lại systemd-manager và áp dụng cấu hình mới.
Mã:
sudo systemctl daemon-reload
4. Sau đó, thực hiện lệnh sau để cho phép dịch vụ redis tự động chạy khi khởi động hệ thống.
Mã:
sudo systemctl enable redis-server
Mã:
sudo systemctl start redis-server
sudo systemctl status redis-server
Đổi tên hoặc vô hiệu hóa lệnh Redis nguy hiểm
Redis cung cấp một tính năng bảo mật cho phép bạn đổi tên hoặc vô hiệu hóa hoàn toàn một số lệnh nguy hiểm. Và điều này có thể được thực hiện đơn giản thông qua tệp cấu hình redis 'redis.conf'.1. Chỉnh sửa cấu hình redis 'redis.conf' bằng lệnh nano.
Mã:
sudo nano /etc/redis/redis.conf
Mã:
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
Mã:
rename-command SHUTDOWN SHUT_ME_DOWN
rename-command CONFIG CONFIG_ME_NOW
4. Tiếp theo, thực hiện lệnh sau để khởi động lại dịch vụ redis và áp dụng cấu hình.
Mã:
sudo systemctl restart redis-server
Xác minh cài đặt Redis
1. Trước tiên, bạn phải kết nối với máy chủ Redis bằng lệnh 'redis-cli' như bên dưới.
Mã:
redis-cli
Mã:
redis-cli -h 127.0.0.1 -p 6379
Mã:
auth AJds9dshsd8wqejdw82389r3ej3983jk
3. Chạy lệnh 'ping' bên dưới. Lệnh này sẽ đảm bảo xác thực và kết nối với máy chủ Redis thành công.
Mã:
ping
4. Tiếp theo, hãy xác minh một số lệnh mà bạn đã vô hiệu hóa hoặc đổi tên ở trên cùng.
Chạy lệnh 'CONFIG' như bên dưới.
Mã:
CONFIG get bind
Bây giờ hãy chạy lệnh 'CONFIG_ME_NOWW' như bên dưới.
Mã:
CONFIG_ME_NOW get bind
CONFIG_ME_NOW get supervised
Ngoài ra, hãy thử chạy một số lệnh bị vô hiệu hóa 'FLUSHDB' và 'DEBUG', và bạn sẽ nhận được cùng một thông báo lỗi như 'Lệnh không xác định ERR'.