Cách cài đặt Redis từ nguồn trên Ubuntu 18.04
Redis là một repository key-value trong bộ nhớ được biết đến với tính linh hoạt, hiệu suất và hỗ trợ ngôn ngữ rộng. Nó thường được sử dụng như một database , bộ nhớ cache và message broker , và hỗ trợ một loạt các cấu trúc dữ liệu.Hướng dẫn này sẽ cài đặt và cấu hình Redis từ nguồn trên server Ubuntu 18.04. Xin lưu ý Redis có thể được cài đặt trong ít bước hơn bằng cách download và cài đặt nó thông qua repository chính thức của Ubuntu. Để cài đặt Redis bằng phương pháp này, vui lòng xem hướng dẫn của ta về Cách cài đặt và bảo mật Redis trên Ubuntu 18.04 .
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần quyền truy cập vào server Ubuntu 18.04 được cài đặt theo hướng dẫn cài đặt server ban đầu này , bao gồm cả user không phải root có quyền sudo
và firewall .
Khi đã sẵn sàng bắt đầu, hãy đăng nhập vào server Ubuntu 18.04 bằng user sudo
của bạn và tiếp tục bên dưới.
Bước 1 - Cài đặt Phụ thuộc Xây dựng và Kiểm tra
Để có được version Redis mới nhất, ta sẽ biên dịch và cài đặt phần mềm từ nguồn. Tuy nhiên, trước khi download mã nguồn, bạn phải đáp ứng các phụ thuộc xây dựng để có thể biên dịch phần mềm.
Để thực hiện việc này, hãy cài đặt gói siêu build-essential
từ repository Ubuntu. Ngoài ra, hãy download gói tcl
mà bạn có thể sử dụng để kiểm tra các file binary .
Cập nhật cache ẩn gói apt
local của bạn và cài đặt các phần phụ thuộc bằng lệnh :
- sudo apt update
- sudo apt install build-essential tcl
Cùng với đó, tất cả các phụ thuộc xây dựng và kiểm tra đều được cài đặt trên server của bạn và bạn có thể bắt đầu quá trình cài đặt chính Redis.
Bước 2 - Download , biên dịch và cài đặt Redis
Sau khi cài đặt các phụ thuộc của nó, bạn đã sẵn sàng cài đặt Redis bằng cách download , biên dịch và sau đó xây dựng mã nguồn. Vì bạn sẽ không cần phải giữ mã nguồn Redis trong thời gian dài (bạn luôn có thể download lại), hãy tải mã nguồn xuống /tmp
của bạn.
Bắt đầu bằng cách chuyển đến folder này:
- cd /tmp
Tiếp theo, sử dụng curl
để download version ổn định mới nhất của Redis. Bạn luôn có thể tìm thấy version mới nhất tại một URL download ổn định :
- curl -O http://download.redis.io/redis-stable.tar.gz
Extract tarball bằng lệnh :
- tar xzvf redis-stable.tar.gz
Sau đó, chuyển sang cấu trúc folder nguồn Redis vừa được extract :
- cd redis-stable
Biên dịch các mã binary Redis bằng lệnh :
- make
Sau khi các file binary hoàn tất quá trình biên dịch, hãy chạy bộ thử nghiệm đảm bảo mọi thứ đã được xây dựng chính xác:
- make test
Quá trình này thường mất vài phút để hoàn thành. Khi quá trình kiểm tra hoàn tất, hãy cài đặt các file binary vào hệ thống bằng lệnh :
- sudo make install
Đó là nó để cài đặt Redis và bây giờ bạn đã sẵn sàng để bắt đầu cấu hình nó. Để làm được điều này, bạn cần tạo một folder cấu hình. Thư mục cấu hình Redis thường được đặt trong folder /etc/
và bạn có thể tạo nó ở đó bằng lệnh :
- sudo mkdir /etc/redis
Tiếp theo, sao chép file cấu hình Redis mẫu đi kèm với repository nguồn Redis:
- sudo cp /tmp/redis-stable/redis.conf /etc/redis
Mở file bằng editor bạn muốn để thực hiện một số thay đổi đối với cấu hình:
- sudo nano /etc/redis/redis.conf
Bên trong file , tìm chỉ thị được supervised
. Chỉ thị này cho phép bạn khai báo một hệ thống init để quản lý Redis như một dịch vụ, cung cấp cho bạn nhiều quyền kiểm soát hơn đối với hoạt động của nó. Chỉ thị được supervised
được đặt thành no
theo mặc định. Vì bạn đang chạy Ubuntu, sử dụng hệ thống systemd init, hãy thay đổi điều này thành systemd
:
. . . # If you run Redis from upstart or systemd, Redis can interact with your # supervision tree. Options: # supervised no - no supervision interaction # supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised auto - detect upstart or systemd method based on # UPSTART_JOB or NOTIFY_SOCKET environment variables # Note: these supervision methods only signal "process is ready." # They do not enable continuous liveness pings back to your supervisor. supervised systemd . . .
Tiếp theo, tìm chỉ thị dir
. Tùy chọn này chỉ định folder mà Redis sẽ sử dụng để kết xuất dữ liệu liên tục. Bạn cần thay đổi vị trí này thành vị trí mà Redis sẽ có quyền ghi và user bình thường không thể xem được.
Sử dụng folder /var/lib/redis
cho việc này; bạn sẽ tạo folder này và điều chỉnh quyền của nó sau trong Bước 4:
. . . # The working directory. # # The DB will be written inside this directory, with the filename specified # above using the 'dbfilename' configuration directive. # # The Append Only File will also be created inside this directory. # # Note that you must specify a directory here, not a file name. dir /var/lib/redis . . .
Lưu file khi bạn hoàn tất.
Đó là tất cả những thay đổi bạn cần thực hiện đối với file cấu hình Redis, nhưng vẫn còn một số bước bạn cần thực hiện - chẳng hạn như cấu hình Redis để chạy như một dịch vụ và tạo user và group chuyên dụng - trước khi bạn có thể bắt đầu sử dụng nó.
Bước 3 - Tạo file đơn vị hệ thống Redis
Để có thêm một số quyền kiểm soát cách bạn quản lý Redis, bạn có thể tạo một file đơn vị systemd cho phép nó hoạt động như một dịch vụ systemd. Điều này cũng có lợi là giúp dễ dàng cho phép Redis khởi động khi nào server của bạn khởi động.
Tạo và mở file /etc/systemd/system/redis.service
để bắt đầu:
- sudo nano /etc/systemd/system/redis.service
Khi vào bên trong, hãy bắt đầu phần [Unit]
bằng cách thêm mô tả về dịch vụ và xác định yêu cầu kết nối mạng phải khả dụng trước khi bắt đầu:
[Unit] Description=Redis In-Memory Data Store After=network.target
Phần [Service]
là nơi bạn chỉ định hành vi của dịch vụ. Vì mục đích bảo mật, bạn không nên chạy dịch vụ này dưới dạng root . Thay vào đó, bạn nên sử dụng một user và group chuyên dụng và để đơn giản hơn, bạn có thể gọi cả hai redis này. Bạn sẽ tạo ra những thứ này trong giây lát.
Để bắt đầu dịch vụ, bạn chỉ cần gọi mã binary redis-server
và trỏ nó vào cấu hình của bạn. Để ngăn chặn nó, hãy sử dụng lệnh shutdown
Redis, bạn có thể thực thi lệnh này với mã binary redis-cli
. Ngoài ra, vì bạn muốn Redis khôi phục sau các lỗi khi nào có thể, hãy đặt lệnh Restart
thành always
:
[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always
Cuối cùng, thêm phần [Install]
. Tại đó, xác định mục tiêu systemd mà dịch vụ sẽ đính kèm nếu nó được kích hoạt (nghĩa là nó được cấu hình để bắt đầu khi server khởi động ):
[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
Lưu file khi bạn hoàn tất.
Tệp đơn vị hệ thống Redis đã được cài đặt xong. Tuy nhiên, trước khi nó có thể được đưa vào sử dụng, bạn phải tạo user và group chuyên dụng mà bạn đã tham chiếu trong phần [Service]
và cấp cho họ các quyền cần thiết để hoạt động.
Bước 4 - Tạo User , Group và Thư mục Redis
Điều cuối cùng bạn cần làm trước khi bắt đầu và thử nghiệm Redis là tạo user , group và folder mà bạn đã tham chiếu trong hai file trước đó.
Bắt đầu bằng cách tạo user và group redis . Bạn có thể thực hiện việc này trong một lệnh duy nhất bằng lệnh :
- sudo adduser --system --group --no-create-home redis
Tiếp theo, tạo folder /var/lib/redis
(được tham chiếu trong file redis.conf
mà bạn đã tạo ở Bước 2) bằng lệnh :
- sudo mkdir /var/lib/redis
Cấp cho user redis
và quyền sở hữu group đối với folder này:
- sudo chown redis:redis /var/lib/redis
Cuối cùng, điều chỉnh quyền để regular user không thể truy cập vị trí này:
- sudo chmod 770 /var/lib/redis
Bạn đã đặt tất cả các thành phần mà Redis cần để hoạt động. Đến đây bạn đã sẵn sàng để bắt đầu dịch vụ Redis và kiểm tra chức năng của nó.
Bước 5 - Khởi động và kiểm tra Redis
Khởi động dịch vụ systemd bằng lệnh :
- sudo systemctl start redis
Kiểm tra xem dịch vụ không có lỗi nào bằng lệnh:
- sudo systemctl status redis
Điều này sẽ tạo ra kết quả tương tự như sau:
Output● redis.service - Redis In-Memory Data Store Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2018-05-29 17:49:11 UTC; 4s ago Main PID: 12720 (redis-server) Tasks: 4 (limit: 4704) CGroup: /system.slice/redis.service └─12720 /usr/local/bin/redis-server 127.0.0.1:6379 . . .
Để kiểm tra xem dịch vụ của bạn có đang hoạt động chính xác hay không, hãy kết nối với server Redis bằng client dòng lệnh:
- redis-cli
Trong dấu nhắc sau đó, hãy kiểm tra kết nối bằng lệnh :
- ping
Kết quả sẽ trả về :
OutputPONG
Tiếp theo, hãy kiểm tra xem bạn có thể đặt các phím bằng lệnh :
- set test "It's working!"
OutputOK
Truy xuất giá trị test
bằng lệnh :
- get test
Bạn có thể truy xuất giá trị bạn đã lưu trữ:
Output"It's working!"
Sau khi xác nhận bạn có thể tìm nạp giá trị, hãy thoát khỏi dấu nhắc Redis để quay lại shell :
- exit
Là bài kiểm tra cuối cùng, ta sẽ kiểm tra xem Redis có thể duy trì dữ liệu ngay cả sau khi nó bị dừng hoặc khởi động lại hay không. Để thực hiện việc này, trước tiên hãy khởi động lại version Redis:
- sudo systemctl restart redis
Sau đó, kết nối lại với khách hàng và xác nhận giá trị thử nghiệm của bạn vẫn có sẵn:
- redis-cli
- get test
Giá trị của khóa của bạn vẫn có thể truy cập được:
Output"It's working!"
Thoát ra khỏi shell khi bạn hoàn thành:
- exit
Giả sử tất cả các thử nghiệm này đều hoạt động và bạn muốn tự động khởi động Redis khi server của bạn khởi động, hãy bật dịch vụ systemd:
- sudo systemctl enable redis
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
Như vậy, cài đặt Redis của bạn đã hoạt động hoàn toàn.
Kết luận
Trong hướng dẫn này, bạn đã cài đặt, biên dịch và xây dựng Redis từ mã nguồn của nó, cấu hình nó để chạy như một dịch vụ systemd và bạn xác nhận cài đặt Redis của bạn đang hoạt động chính xác. Bước tiếp theo ngay lập tức, ta đặc biệt khuyến khích bạn bảo mật cài đặt Redis của bạn theo hướng dẫn của ta về Cách bảo mật cài đặt Redis của bạn trên Ubuntu 18.04 .
Các tin liên quan
Cách bảo mật cài đặt Redis của bạn trên Ubuntu 18.042018-06-27
Cách thiết lập server Redis làm trình xử lý phiên cho PHP trên Ubuntu 16.04
2016-11-14
Cách cấu hình Redis Replication trên Ubuntu 16.04
2016-11-11
Cách mã hóa lưu lượng truy cập vào Redis với Spiped trên Ubuntu 16.04
2016-11-09
Cách mã hóa lưu lượng truy cập vào Redis với Stunnel trên Ubuntu 16.04
2016-11-08
Cách mã hóa lưu lượng truy cập vào Redis với PeerVPN trên Ubuntu 16.04
2016-11-08
Cách cài đặt và cấu hình Redis trên Ubuntu 16.04
2016-05-11
Cách di chuyển dữ liệu Redis với Master-Slave Replication trên Ubuntu 14.04
2016-05-05
Cách tìm log Redis trên Ubuntu
2016-03-01
Cách bảo mật cài đặt Redis của bạn trên Ubuntu 14.04
2015-09-25