Redis là kho lưu trữ khóa-giá trị trong bộ nhớ mã nguồn mở, miễn phí, hỗ trợ nhiều loại cấu trúc dữ liệu khác nhau. Bạn có thể sử dụng nó như một cơ sở dữ liệu, bộ nhớ đệm, trình môi giới tin nhắn và hàng đợi. Nó được sử dụng để xây dựng các ứng dụng web có hiệu suất cao và khả năng mở rộng. Nó hỗ trợ nhiều ngôn ngữ lập trình như Java, PHP, C, Perl, Python, C#, Lua, Go và nhiều ngôn ngữ khác nữa. Đây là một nền tảng chéo và hoạt động trên hầu hết các hệ điều hành dựa trên Unix bao gồm Linux, *BSD và OS X.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Redis trên máy chủ CentOS 8.
Sau khi cài đặt máy chủ Redis, hãy khởi động dịch vụ Redis và cho phép nó khởi động khi khởi động lại hệ thống 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ả sau:
Theo mặc định, Redis lắng nghe trên cổng 6379. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ nhận được kết quả đầ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ả đầu ra sau:
Bây giờ, hãy chạy lệnh sau để kiểm tra kết nối:
Bạn sẽ thấy kết quả đầu ra sau:
Thêm các dòng sau vào cuối tệp:
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:
Tìm dòng sau:
Và thay thế bằng dòng sau:
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 kết nối với Redis bằng lệnh sau:
Sau khi kết nối, hãy chạy lệnh sau:
Bạn sẽ nhận được lỗi sau vì bạn không xác thực.
Bây giờ, 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ẽ thấy đầu ra sau:
Bây giờ, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
Khi bạn hoàn tất, bạn có thể tiến hành bước tiếp theo.
Chúng ta hãy xem cách lấy lại mật khẩu Redis bằng lệnh "config".
Đầu tiên, hãy kết nối với Redis bằng lệnh sau:
Sau khi kết nối, hãy xác thực Redis bằng lệnh sau:
Tiếp theo, hãy lấy lại mật khẩu Redis bằng lệnh sau:
Bạn sẽ nhận được mật khẩu Redis trong đầu ra sau:
Bạn có thể đổi tên lệnh "config" bằng cách chỉnh sửa tệp /etc/redis.conf:
Tìm dòng sau:
Và thay thế bằng dòng sau:
Lưu và đóng tệp. Sau đó, khởi động lại dịch vụ Redis bằng lệnh sau:
Bây giờ, hãy kết nối và xác thực Redis bằng lệnh sau:
Bây giờ, hãy lấy lại mật khẩu Redis bằng lệnh "config":
Bạn sẽ 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 mật khẩu Redis của mình trong đầu ra sau:
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Redis trên máy chủ CentOS 8.
Điều kiện tiên quyết
- Một máy chủ chạy CentOS 8.
- Một mật khẩu gốc được cấu hình cho máy chủ.
Cài đặt Redis Server
Theo mặc định, gói Redis có sẵn trong kho lưu trữ mặc định của CentOS 8. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
dnf install redis -y
Mã:
systemctl start redis
systemctl enable redis
Mã:
systemctl status redis
Mã:
Loaded: đã tải (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d ??limit.conf Đang hoạt động: đang hoạt động (đang chạy) kể từ Tue 2020-09-15 04:52:54 EDT; 6 giây trước PID chính: 3076 (redis-server) Nhiệm vụ: 4 (giới hạn: 12527) Bộ nhớ: 6,6M CGroup: /system.slice/redis.service ??3076 /usr/bin/redis-server 127.0.0.1:637915/09 04:52:54 centos8 systemd[1]: Đang khởi động cơ sở dữ liệu khóa-giá trị liên tục Redis...15/09 04:52:54 centos8 systemd[1]: Đã khởi động cơ sở dữ liệu khóa-giá trị liên tục Redis.
Mã:
ss -ant | grep 6379
Mã:
LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
Mã:
redis-cli
Mã:
127.0.0.1:6379>
Mã:
127.0.0.1:6379> ping
Mã:
PONG
Cấu hình bộ đệm Redis
Tiếp theo, bạn sẽ cần cấu hình Redis làm máy chủ lưu trữ đệm. Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình Redis:
Mã:
nano /etc/redis.conf
Mã:
maxmemory 128mbmaxmemory-policy allkeys-lru
Mã:
systemctl restart redis
Secure Redis Server
Theo mặc định, redis-cli cho phép bạn chạy bất kỳ lệnh nào trong shell Raedis. Vì vậy, bạn nên bảo mật shell Redis bằng mật khẩu. Bạn có thể bật xác thực mật khẩu bằng cách chỉnh sửa tệp /etc/redis.conf:
Mã:
nano /etc/redis.conf
Mã:
# requirepass foobared
Mã:
requirepass A	D3Fs4%#df
Mã:
systemctl restart redis
Mã:
redis-cli
Mã:
127.0.0.1:6379> Máy chủ INFO
Mã:
Yêu cầu xác thực NOAUTH.
Mã:
127.0.0.1:6379> AUTH A	D3Fs4%#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:28849dbea6f07cc8redis_mode:standaloneos:Linux 4.18.0-193.14.2.el8_2.x86_64 x86_64arch_bits:64multiplexing_api:epollatomicvar_api:atomic-builtingcc_version:8.3.1process_id:3176run_id:2bf42acb9a0c0f251220c9bf5d66982b1c0b1d87tcp_port:6379uptime_in_seconds:41uptime_in_days:0hz:10configured_hz:10lru_clock:6324712executable:/usr/bin/redis-serverconfig_file:/etc/redis.conf
Đổi tên lệnh nguy hiểm
Bạn cũng nên đổi tên một số lệnh nguy hiểm bên trong shell Redis. Một trong những lệnh nguy hiểm là "config". Lệnh này được dùng để lấy lại mật khẩu Redis.Chúng ta hãy xem cách lấy lại mật khẩu Redis bằng lệnh "config".
Đầu tiên, hãy kết nối với Redis bằng lệnh sau:
Mã:
redis-cli
Mã:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Mã:
127.0.0.1:6379> config get requirepass
Mã:
1) "requirepass"2) "A	D3Fs4%#df"
Mã:
nano /etc/redis.conf
Mã:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Mã:
rename-command CONFIG hitredis
Mã:
systemctl restart redis
Mã:
redis-cli
127.0.0.1:6379> AUTH A	D3Fs4%#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> hitredis get requirepass
Mã:
1) "requirepass"2) "A	D3Fs4%#df"