Redis là kho lưu trữ khóa/giá trị trong bộ nhớ nguồn mở được sử dụng làm cơ sở dữ liệu, bộ nhớ đệm và môi giới tin nhắn. Đây là cơ sở dữ liệu khóa-giá trị trong bộ nhớ phân tán với độ bền tùy chọn. Nó hỗ trợ các cấu trúc dữ liệu phổ biến như chuỗi, hàm băm, danh sách, tập hợp, bitmap, tập hợp được sắp xếp, HyperlogLog, luồng và chỉ mục geodata với các truy vấn bán kính.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Redis Server trên Ubuntu 22.04 LTS. Đầu tiên, chúng ta sẽ cài đặt Redis Server rồi sao lưu cài đặt để sẵn sàng cho sản xuất.
Chạy các lệnh apt bên dưới.
Sau đó, cài đặt gói Redis-server từ kho lưu trữ Ubuntu chính thức bằng lệnh apt bên dưới.
Sau khi cài đặt hoàn tất, bạn sẽ nhận được thông báo lỗi về dịch vụ Redis không khởi động được, hãy bỏ qua lỗi thông báo và chúng ta sẽ cấu hình nó ở bước tiếp theo.
Chỉnh sửa tệp cấu hình 'redis.conf' bằng trình soạn thảo nano.
Trước tiên, chúng ta cần chọn một địa chỉ IP 'bind' để chạy dịch vụ Redis. Không nên sử dụng địa chỉ IP công khai cho dịch vụ Redis hoặc nếu bạn đang chạy dịch vụ Redis nhiều/cụm, bạn nên sử dụng mạng nội bộ.
Thay đổi địa chỉ 'bind' bằng địa chỉ IP localhost cho ví dụ này (IPv4 và IPv6). Vì lý do bảo mật, chúng tôi khuyến nghị chỉ nên để Redis lắng nghe trên IP máy chủ cục bộ nếu các dịch vụ sử dụng Redis sẽ được cài đặt trên cùng một hệ thống.
Sau đó, chúng ta cần thiết lập cách dịch vụ Redis sẽ chạy trên máy chủ. Vì chúng ta đang sử dụng máy chủ Ubuntu và systemd, nên chúng ta cần thay đổi cấu hình dòng 'supervised' thành 'systemd'.
Lưu và đóng.
Bây giờ hãy khởi động lại dịch vụ Redis và thêm nó vào thời gian khởi động.
Bây giờ hãy đảm bảo không có lỗi nào và sau đó kiểm tra trạng thái của nó.
Kết quả là, dịch vụ Redis đã hoạt động trên Ubuntu 22.04 Server.
Bây giờ hãy kiểm tra cổng Redis mặc định '6379' bằng lệnh netstat bên dưới.
Và bạn sẽ nhận được kết quả dịch vụ Redis đang chạy trên địa chỉ IP localhost với mặc định là '6379'.
Bây giờ hãy kiểm tra Redis bằng lệnh 'redis-cli' như bên dưới.
Và bạn sẽ nhận được kết quả như bên dưới.
Nếu cài đặt của bạn đúng, bạn sẽ nhận được phản hồi của Redis Server với 'PONG' hoặc phản hồi bằng văn bản mà bạn đã nhập sau tùy chọn 'ping'.
Quá trình cài đặt và cấu hình cơ bản của Redis Server đã hoàn tất thành công.
Chỉnh sửa tệp cấu hình 'redis.conf'.
Trong phần 'bind', hãy thay đổi địa chỉ IP bằng địa chỉ IP mạng nội bộ của riêng bạn.
Lưu và đóng.
Và bây giờ dịch vụ Redis sẽ chạy dưới 'INTERNAL-IP-ADDRESS'.
Để bật Xác thực mật khẩu cho máy chủ Redis, bạn sẽ cần bỏ chú thích phần 'requirepass' trên tệp 'redis.conf' và nhập mật khẩu mạnh của bạn sau đó.
Thay đổi 'MySecretSecurePassword' bằng mật khẩu mạnh của bạn. Và bây giờ xác thực mật khẩu cho Redis đã được bật.
Để thay đổi hoặc vô hiệu hóa lệnh Redis, bạn có thể sử dụng tùy chọn 'rename-command'. Chỉnh sửa tệp cấu hình Redis 'redis.conf' và thêm một số cấu hình bên dưới.
Lưu và đóng.
Sau khi hoàn tất, hãy khởi động lại dịch vụ Redis bằng lệnh systemctl bên dưới.
Và bảo mật Redis cơ bản để bảo mật cài đặt Redis đã được áp dụng cho máy chủ của chúng tôi.
Cân nhắc thêm, bạn cũng có thể cần hỗ trợ 'Mã hóa dữ liệu' cho Redis, cũng như mã hóa bảo mật cần thiết ở phía ứng dụng.
Thay đổi '127.0.0.1' bằng địa chỉ IP của riêng bạn.
Sau khi kết nối với máy chủ, hãy thử lệnh ping.
Bây giờ bạn sẽ nhận được kết quả như bên dưới.
Bạn đang gặp lỗi vì bạn cần xác thực trước khi gọi bất kỳ lệnh nào trên shell Redis CLI.
Chạy lệnh sau để xác thực với máy chủ Redis.
Sau khi bạn đã được xác thực, bạn có thể thử lệnh ping và bạn sẽ nhận được phản hồi từ máy chủ Redis.
Dưới đây là kết quả sau khi bạn đã được xác thực với Máy chủ Redis.
Dưới đây là kết quả lỗi của các lệnh đó.
Tiếp theo, chạy các lệnh 'CUSTOM' cho từng lệnh.
Tạo khóa mới bằng lệnh redis-cli như bên dưới.
Bây giờ hãy xóa tất cả các khóa và dữ liệu bằng lệnh 'FLUSHALL' đã đổi tên là 'DELITALL'.
Đối với lệnh 'CONFIG', bạn có thể thử truy xuất hoặc thiết lập giá trị mới của cấu hình Redis Server. Lệnh 'CONFIG' đã được đổi tên thành 'MYSERVERCONF'.
Và bên dưới là kết quả của các lệnh tùy chỉnh được đổi tên mới này.
Để thoát khỏi bảng điều khiển Redis, hãy nhập từ quit.
Quá trình cài đặt Redis Server cơ bản trên Ubuntu 22.04 đã hoàn tất và bảo mật cơ bản cho Redis Server đã được áp dụng.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Redis Server trên Ubuntu 22.04 LTS. Đầu tiên, chúng ta sẽ cài đặt Redis Server rồi sao lưu cài đặt để sẵn sàng cho sản xuất.
Điều kiện tiên quyết
Đối với hướng dẫn này, chúng ta sẽ cài đặt Redis Server trên Ubuntu 22.04 với 1 GB RAM và 2 lõi CPU. Hướng dẫn này chỉ dành cho mục đích thử nghiệm. Đối với sản xuất, bạn sẽ cần nhiều hơn thế này.Những gì chúng ta sẽ làm
- Cài đặt Redis Server
- Cấu hình cơ bản của Redis Server
- Bảo mật Redis Server
- Kiểm tra
Bước 1 - Cài đặt Redis Server
Trước tiên, chúng ta sẽ cập nhật tất cả các kho lưu trữ trên hệ thống Ubuntu và nâng cấp tất cả các gói.Chạy các lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt upgrade -y
Sau đó, cài đặt gói Redis-server từ kho lưu trữ Ubuntu chính thức bằng lệnh apt bên dưới.
Mã:
sudo apt install redis-server -y
Sau khi cài đặt hoàn tất, bạn sẽ nhận được thông báo lỗi về dịch vụ Redis không khởi động được, hãy bỏ qua lỗi thông báo và chúng ta sẽ cấu hình nó ở bước tiếp theo.
Bước 2 - Cấu hình cơ bản cho máy chủ Redis
Trong bước này, chúng ta sẽ thiết lập một máy chủ Redis cơ bản. Trên hệ thống Linux, cấu hình Redis nằm ở thư mục '/etc/redis'.Chỉnh sửa tệp cấu hình 'redis.conf' bằng trình soạn thảo nano.
Mã:
sudo nano /etc/redis/redis.conf
Thay đổi địa chỉ 'bind' bằng địa chỉ IP localhost cho ví dụ này (IPv4 và IPv6). Vì lý do bảo mật, chúng tôi khuyến nghị chỉ nên để Redis lắng nghe trên IP máy chủ cục bộ nếu các dịch vụ sử dụng Redis sẽ được cài đặt trên cùng một hệ thống.
Mã:
bind 127.0.0.1 ::1
Sau đó, chúng ta cần thiết lập cách dịch vụ Redis sẽ chạy trên máy chủ. Vì chúng ta đang sử dụng máy chủ Ubuntu và systemd, nên chúng ta cần thay đổi cấu hình dòng 'supervised' thành 'systemd'.
Mã:
supervised systemd
Lưu và đóng.
Bây giờ hãy khởi động lại dịch vụ Redis và thêm nó vào thời gian khởi động.
Mã:
sudo systemctl restart redis-server
sudo systemctl enable redis-server
Bây giờ hãy đảm bảo không có lỗi nào và sau đó kiểm tra trạng thái của nó.
Mã:
sudo systemctl status redis-server
Kết quả là, dịch vụ Redis đã hoạt động trên Ubuntu 22.04 Server.
Bây giờ hãy kiểm tra cổng Redis mặc định '6379' bằng lệnh netstat bên dưới.
Mã:
ss -plnt4
Bây giờ hãy kiểm tra Redis bằng lệnh 'redis-cli' như bên dưới.
Mã:
redis-cli ping
redis-cli ping "Hello Howtoforge redis Server"
Nếu cài đặt của bạn đúng, bạn sẽ nhận được phản hồi của Redis Server với 'PONG' hoặc phản hồi bằng văn bản mà bạn đã nhập sau tùy chọn 'ping'.
Quá trình cài đặt và cấu hình cơ bản của Redis Server đã hoàn tất thành công.
Bước 3 - Bảo mật cài đặt Redis
Trong bước này, chúng ta sẽ bảo mật cài đặt Redis của mình. Có 3 điều bạn phải biết về bảo mật Redis Server.1. Bảo mật mạng
Bảo mật mạng cho Redis server liên quan đến cấu hình 'bind' trên cấu hình Redis 'redis.conf'. Bạn nên sử dụng mạng riêng nội bộ cho cài đặt Redis của mình và không sử dụng mạng công cộng.Chỉnh sửa tệp cấu hình 'redis.conf'.
Mã:
sudo nano /etc/redis/redis.conf
Mã:
bind INTERNAL-IP-ADDRESS
Và bây giờ dịch vụ Redis sẽ chạy dưới 'INTERNAL-IP-ADDRESS'.
2. Xác thực bằng mật khẩu
Xác thực mật khẩu cho Redis sẽ cung cấp cho bạn quyền kiểm soát truy cập vào máy chủ Redis của bạn. Đây là một lớp bảo mật nhỏ sẽ tăng cường bảo mật máy chủ Redis của bạn và nó vẫn chưa được bật theo mặc định khi cài đặt.Để bật Xác thực mật khẩu cho máy chủ Redis, bạn sẽ cần bỏ chú thích phần 'requirepass' trên tệp 'redis.conf' và nhập mật khẩu mạnh của bạn sau đó.
Mã:
requirepass MySecretSecurePassword
3. Vô hiệu hóa các lệnh Redis nguy hiểm
Redis cung cấp một tính năng để vô hiệu hóa một số lệnh Redis cụ thể. Tính năng này có thể được sử dụng để đổi tên hoặc vô hiệu hóa một số lệnh nguy hiểm như 'FLUSHALL' để xóa toàn bộ dữ liệu, lệnh 'CONFIG' để thiết lập các tham số cấu hình thông qua Redis CLI, v.v.Để thay đổi hoặc vô hiệu hóa lệnh Redis, bạn có thể sử dụng tùy chọn 'rename-command'. Chỉnh sửa tệp cấu hình Redis 'redis.conf' và thêm một số cấu hình bên dưới.
Mã:
# rename-command COMMAND "CUSTOM"
rename-command FLUSHALL "DELITALL"
rename-command CONFIG "MYSERVERCONF"
Sau khi hoàn tất, hãy khởi động lại dịch vụ Redis bằng lệnh systemctl bên dưới.
Mã:
systemctl restart redis-server
Cân nhắc thêm, bạn cũng có thể cần hỗ trợ 'Mã hóa dữ liệu' cho Redis, cũng như mã hóa bảo mật cần thiết ở phía ứng dụng.
Bước 4 - Kiểm tra
Trong bước này, chúng ta sẽ kiểm tra triển khai Redis Server của mình bằng dòng lệnh 'redis-cli'.1. Kiểm tra máy chủ và xác thực
Kết nối với máy chủ Redis bằng lệnh redis-cli bằng cách chỉ định tên máy chủ/địa chỉ IP và cổng của máy chủ redis.
Mã:
redis-cli -h 127.0.0.1 -p 6379
Sau khi kết nối với máy chủ, hãy thử lệnh ping.
Mã:
ping "Hello Howtoforge"
Bạn đang gặp lỗi vì bạn cần xác thực trước khi gọi bất kỳ lệnh nào trên shell Redis CLI.
Chạy lệnh sau để xác thực với máy chủ Redis.
Mã:
AUTH MySecretSecurePassword
Mã:
ping "Xin chào Redis tại Howtoforge"
2. Kiểm tra lệnh bị vô hiệu hóa/đổi tên
Chạy tất cả các lệnh mà chúng ta đã đổi tên trên shell và bạn sẽ nhận được lỗi lệnh.
Mã:
FLUSHALL
CONFIG
Tiếp theo, chạy các lệnh 'CUSTOM' cho từng lệnh.
Tạo khóa mới bằng lệnh redis-cli như bên dưới.
Mã:
SET Tên "Hakase Labs"
SET Blog "Howtoforge.com"
Khóa *
Mã:
DELITALL
Mã:
MYSERVERCONF get bind
MYSERVERCONF get requirepass
Để thoát khỏi bảng điều khiển Redis, hãy nhập từ quit.
Mã:
quit