Redis còn được gọi là "Remote Dictionary Server" là một cơ sở dữ liệu mã nguồn mở và trong bộ nhớ 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 hỗ trợ nhiều cấu trúc dữ liệu khác nhau, chẳng hạn như chuỗi, băm, danh sách, tập hợp và nhiều hơn nữa. Redis được viết bằng ngôn ngữ lập trình C và hoạt động trong hầu hết các hệ thống POSIX như Linux, Free BSD và OS X. Redis có thể chạy hàng nghìn lệnh mỗi giây. Redis đi kèm với một bộ tính năng phong phú bao gồm Sao chép, Tự động chuyển đổi dự phòng, Tập lệnh Lua, Loại bỏ khóa LRU, Giao dịch và nhiều tính năng khác.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và bảo mật Redis trên máy chủ Debian 10.
Sau khi máy chủ của bạn được cập nhật, hãy khởi động lại máy chủ để áp dụng các thay đổi.
Sau khi cài đặt Redis, hãy khởi động dịch vụ Redis và cho phép nó khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái của máy chủ Redis bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Theo mặc định, Redis đang lắng nghe trên máy chủ cục bộ ở cổng 6379. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, hãy kiểm tra kết nối Redis bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Bây giờ, hãy kiểm tra kết nối Redis bằng lệnh ping:
Nếu mọi thứ đều ổn, bạn sẽ thấy kết quả sau:
Sau khi hoàn tất. Bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau vào cuối tệp:
Khi đạt đến bộ nhớ tối đa 64mb. Redis sẽ xóa bất kỳ khóa nào theo thuật toán LRU. Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Redis bằng lệnh sau:
Sau khi bạn hoàn tất. Bạn có thể tiến hành bước tiếp theo.
Trong phần BẢO MẬT, hãy tìm dòng sau:
Bỏ chú thích và thay thế bằng mật khẩu mong muốn của bạn như hiển thị bên dưới:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Redis để áp dụng các thay đổi cấu hình:
Bây giờ, hãy truy cập shell Redis bằng lệnh sau:
Bây giờ, hãy chạy lệnh sau mà không cần xác thực:
Lệnh này sẽ không có tác dụng vì bạn không xác thực. Bạn sẽ nhận được lỗi sau:
Tiếp theo, hãy chạy lệnh sau để xác thực bằng mật khẩu được chỉ định trong tệp cấu hình Redis:
Bạn sẽ nhận được kết quả đầu ra sau:
Bây giờ, hãy chạy lại lệnh trước đó:
Điều này sẽ chạy thành công và bạn sẽ thấy kết quả sau:
Sau khi hoàn tất. Bạn có thể tiến hành bước tiếp theo.
Ở đây chúng tôi sẽ đổi tên lệnh "config". Lệnh config được sử dụng để lấy mật khẩu Redis. Chúng ta hãy xem ví dụ sau:
Trước tiên, hãy kết nối và xác thực shell Redis bằng lệnh sau:
Tiếp theo, hãy lấy mật khẩu Redis bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn có thể đổi tên lệnh config bằng cách chỉnh sửa tệp /etc/redis/redis.conf:
Tìm dòng sau:
Bỏ chú thích và thay thế bằng chuỗi mong muốn của bạn:
Lưu và đóng tệp. Sau đó, khởi động lại dịch vụ Redis bằng lệnh sau:
Tiếp theo, kết nối và xác thực shell Redis bằng lệnh sau:
Tiếp theo, lấy lại mật khẩu Redis bằng lệnh config:
Chúng tôi đã đổi tên lệnh này để bạn nhận được lỗi sau:
Bây giờ, hãy chạy lệnh đã đổi tên như hiển thị bên dưới:
Bạn sẽ nhận được kết quả sau:
Cuối cùng, thoát khỏi Redis shell bằng lệnh sau:
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và bảo mật Redis trên máy chủ Debian 10.
Yêu cầu
- Máy chủ chạy Debian 10.
- Mật khẩu gốc được thiết lập cho máy chủ của bạn.
Bắt đầu
Trước khi bắt đầu, bạn sẽ cần cập nhật hệ thống của mình lên phiên bản mới nhất. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Cài đặt Redis
Theo mặc định, Redis có sẵn trong kho lưu trữ Debian 10. Bạn có thể cài đặt nó chỉ bằng cách chạy lệnh sau:
Mã:
apt-get install redis-server -y
Mã:
systemctl start redis-server
systemctl enable redis-server
Mã:
systemctl status redis-server
Mã:
? redis-server.service - Kho lưu trữ khóa-giá trị nâng cao Đã tải: đã tải (/lib/systemd/system/redis-server.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2019-09-06 05:57:45 EDT; 4 giây trước Tài liệu: http://redis.io/documentation, man:redis-server(1) Tiến trình: 2284 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) PID chính: 2285 (redis-server) Nhiệm vụ: 4 (giới hạn: 1138) Bộ nhớ: 6,8M CGroup: /system.slice/redis-server.service ??2285 /usr/bin/redis-server 127.0.0.1:637906/09 05:57:45 debian systemd[1]: Đang khởi động kho lưu trữ khóa-giá trị nâng cao...06/09 05:57:45 debian systemd[1]: redis-server.service: Không thể mở tệp PID /run/redis/redis-server.pid (chưa?) sau khi bắt đầu: Không có tệp nào như vậy hoặc di06/09 05:57:45 debian systemd[1]: Đã bắt đầu lưu trữ khóa-giá trị nâng cao.
Mã:
ps -ef | grep redis
Mã:
redis 2285 1 0 05:57 ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379root 2294 706 0 05:59 pts/0 00:00:00 grep redis
Mã:
redis-cli
Mã:
127.0.0.1:6379>
Mã:
127.0.0.1:6379> ping
Mã:
PONG
Cấu hình Redis làm Cache
Bạn có thể cấu hình Redis làm Cache bằng cách chỉnh sửa tệp /etc/redis/redis.conf:
Mã:
nano /etc/redis/redis.conf
Mã:
maxmemory 64mbmaxmemory-policy allkeys-lru
Mã:
systemctl restart redis-server
Cấu hình Xác thực Redis
Theo mặc định, bạn có thể chạy bất kỳ lệnh nào trong shell Redis. Vì vậy, bạn nên cấu hình Xác thực Redis để máy khách yêu cầu mật khẩu trước khi chạy bất kỳ lệnh nào. Bạn có thể cấu hình xác thực mật khẩu trực tiếp trong tệp cấu hình của Redis. Để thực hiện, hãy mở tệp /etc/redis/redis.conf bằng trình soạn thảo bạn thích:
Mã:
nano /etc/redis/redis.conf
Mã:
# requirepass foobared
Mã:
requirepass AlsW34%#df
Mã:
systemctl restart redis-server
Mã:
redis-cli
Mã:
127.0.0.1:6379> INFO server
Mã:
NOAUTH Authentication required.
Mã:
127.0.0.1:6379> AUTH AlsW34%#df
Mã:
OK
Mã:
127.0.0.1:6379> Máy chủ INFO
Mã:
# Máy chủredis_version:5.0.3redis_git_sha1:00000000redis_git_dirty:0redis_build_id:afa0decbb6de285fredis_mode:standaloneos:Linux 4.19.0-5-amd64 x86_64arch_bits:64multiplexing_api:epollatomicvar_api:atomic-builtingcc_version:8.3.0process_id:2308run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6ctcp_port:6379uptime_in_seconds:50uptime_in_days:0hz:10configured_hz:10lru_clock:7483371executable:/usr/bin/redis-serverconfig_file:/etc/redis/redis.conf
Đổi tên các lệnh cụ thể
Vì lý do bảo mật, chúng tôi khuyên bạn nên đổi tên một số lệnh được coi là nguy hiểm.Ở đây chúng tôi sẽ đổi tên lệnh "config". Lệnh config được sử dụng để lấy mật khẩu Redis. Chúng ta hãy xem ví dụ sau:
Trước tiên, hãy kết nối và xác thực shell Redis bằng lệnh sau:
Mã:
redis-cli
Mã:
127.0.0.1:6379> AUTH AlsW34%#df
Mã:
127.0.0.1:6379> config get requirepass
Mã:
1) "requirepass"2) "AlsW34%#df"127.0.0.1:6379>
Mã:
nano /etc/redis/redis.conf
Mã:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Mã:
rename-command CONFIG H2sW_Config
Mã:
systemctl restart redis-server
Mã:
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
Mã:
127.0.0.1:6379> config get requirepass
Mã:
(error) ERR unknown command `config`, with args starting with: `get`, `requirepass`,
Mã:
127.0.0.1:6379> H2sW_Config get requirepass
Mã:
1) "requirepass"2) "AlsW34%#df"
Mã:
127.0.0.1:6379> exit