Giới thiệu
Redis là một kho lưu trữ -value trong bộ nhớ được biết đến với tính linh hoạt, hiệu suất và hỗ trợ nhiều ngôn ngữ. Trong hướng dẫn này, tôi sẽ trình bày cách cài đặt và định cấu hình Redis trên máy chủ Ubuntu 16.04.
Cập nhật và cài các phần mềm phụ thuộc
sudo apt-get update
sudo apt-get install build-essential tcl
Download, Compile, và Install Redis
Download và Extract the Source Code
Vì source code không cần giữ lại, chỉ giữ lại bản đã biên dịch nên ta build vào thư mục tạm /tmp
:
cd /tmp
Giờ tải về bản ổn định của Redis tại đây:
curl -O http://download.redis.io/redis-stable.tar.gz
Giải nén:
tar xzvf redis-stable.tar.gz
Di chuyển vào cấu trúc thư mục nguồn Redis vừa được giải nén:
cd redis-stable
Build và Install Redis
Sau khi các tệp nhị phân được biên dịch, hãy chạy bộ kiểm tra để đảm bảo mọi thứ được xây dựng chính xác:
Điều này thường sẽ mất một vài phút để chạy. Sau khi hoàn tất, bạn có thể cài đặt các tệp nhị phân lên hệ thống bằng cách nhập:
sudo make install
Cấu hình Redis
Bây giờ Redis đã được cài đặt, chúng ta có thể bắt đầu cấu hình nó. Để bắt đầu, chúng ta cần tạo một thư mục cấu hình. Chúng tôi sẽ sử dụng thông thường / etc / redis, có thể được tạo bằng cách gõ:
sudo mkdir /etc/redis
Bây giờ, sao chép tệp cấu hình Redis mẫu có trong kho lưu trữ nguồn Redis:
sudo cp /tmp/redis-stable/redis.conf /etc/redis
Tiếp theo, mở tệp để điều chỉnh một vài mục trong cấu hình:
sudo nano /etc/redis/redis.conf
Trong file này, tìm supervised
. Hiện tại nó là no
. thay nó 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 thư mục dir. Tùy chọn này chỉ định thư mục mà Redis sẽ sử dụng để kết xuất dữ liệu liên tục. Chúng tôi cần chọn một vị trí mà Redis sẽ có quyền ghi và người dùng bình thường không thể xem được.
Sử dụng /var/lib/redis
cho nó:
. . .
# 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
. . .
Tập tin Tệp Redis systemd Đơn vị
Tiếp theo, ta có thể tạo tệp đơn vị systemd để hệ thống init có thể quản lý quy trình Redis.
Tạo và mở tệp /etc/systemd/system/redis.service
để bắt đầu:
sudo nano /etc/systemd/system/redis.service
Tìm phần [Unit]
bằng cách thêm một mô tả và xác định một yêu cầu mạng có sẵn trước khi bắt đầu dịch vụ này:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
Trong phần [Service]
, ta cần chỉ định hành vi của dịch vụ. Vì mục đích bảo mật, ta không nên chạy dịch vụ của mình dưới dạng root . Chúng ta nên sử dụng một người dùng và nhóm chuyên dụng, chúng ta sẽ gọi
redis
để đơn giản. Chúng tôi sẽ tạo ra những khoảnh khắc này.
Để bắt đầu dịch vụ, ta chỉ cần gọi redis-server
trong câú hình. Để dùng lại ta có thể sử dung câu lệnh Redis shutdown.
Ngoài ra, vì muốn Redis tự khắc phục lỗi khi có thể, nên ta đặt Restart
là “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, trong phần [Install]
, ta có thể định nghĩa systemd target rằng service có thể được đính kèm nếu được bật (được cấu hình khi 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 lại và đóng file.
Tạo Redis User, Group và Directories
Tạo user và group redis
bằng lệnh:
sudo adduser --system --group --no-create-home redis
Tạo đường dẫn /var/lib/redis
:
sudo mkdir /var/lib/redis
Trao quyền cho user và group redis
cho thư mục:
sudo chown redis:redis /var/lib/redis
Điều chỉnh các quyền để người dùng thông thường không thể truy cập vị trí này:
sudo chmod 770 /var/lib/redis
Start và Test Redi
Start Redis Service
sudo systemctl start redis
Kiểm tra lỗi không:
sudo systemctl status redis
Nếu không lỗi bạn sẽ nhận được output dạng như này:
● redis.service - Redis Server
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
Process: 3115 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
Main PID: 3124 (redis-server)
Tasks: 3 (limit: 512)
Memory: 864.0K
CPU: 179ms
CGroup: /system.slice/redis.service
└─3124 /usr/local/bin/redis-server 127.0.0.1:6379
. . .
Kiểm tra chức năng của Redis Instance
Để kiểm tra service, kết nối Redis server với lệnh:
redis-cli
Kiểm tra kết nối bằng cách gõ:
ping
Bạn sẽ thấy:
PONG
Thêm key bằng cách gõ:
set test "It's working!"
Output
OK
Lấy giá trị của key bằng cách:
get test
Output
"It's working!"
Exit quay trở lại shell:
exit
Khởi động lại gõ:
sudo systemctl restart redis
Enable Redis để Start khi khởi động
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
Tham khảo:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04