Thứ tư, 11/05/2016 | 00:00 GMT+7

Cách cài đặt và cấu hình Redis trên Ubuntu 16.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 rãi. Trong hướng dẫn này, ta sẽ trình bày cách cài đặt và cấu hình Redis trên server Ubuntu 16.04.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần truy cập vào server Ubuntu 16.04. Bạn cần một user không phải root có quyền sudo để thực hiện các chức năng quản trị cần thiết cho quá trình này. Bạn có thể tìm hiểu cách cài đặt account với các quyền này theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 của ta .

Khi đã sẵn sàng bắt đầu, hãy đăng nhập vào server Ubuntu 16.04 với user sudo của bạn và tiếp tục bên dưới.

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. Trước khi ta download mã, ta cần đáp ứng các phụ thuộc xây dựng để ta có thể biên dịch phần mềm.

Để thực hiện việc này, ta có thể cài đặt gói siêu build-essential từ repository Ubuntu. Ta cũng sẽ download gói tcl , mà ta có thể sử dụng để kiểm tra các file binary của bạn .

Ta có thể 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-get update
  • sudo apt-get install build-essential tcl

Download , biên dịch và cài đặt Redis

Tiếp theo, ta có thể bắt đầu xây dựng Redis.

Download và extract mã nguồn

Vì ta sẽ không cần giữ mã nguồn mà ta sẽ biên dịch lâu dài ( ta luôn có thể download lại), ta sẽ xây dựng trong /tmp . Hãy chuyển đến đó ngay bây giờ:

  • cd /tmp

Bây giờ, hãy download version ổn định mới nhất của Redis. Điều này luôn có sẵn 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

Di chuyển vào cấu trúc folder nguồn Redis vừa được extract :

  • cd redis-stable

Xây dựng và cài đặt Redis

Bây giờ, ta có thể biên dịch các mã binary Redis bằng lệnh :

  • make

Sau khi các file binary được 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. Bạn có thể thực hiện việc này bằng lệnh :

  • make test

Quá trình này thường mất vài phút để chạy. Sau khi hoàn tất, bạn có thể cài đặt các file binary vào hệ thống bằng lệnh :

  • sudo make install

Cấu hình Redis

Bây giờ Redis đã được cài đặt, ta có thể bắt đầu cấu hình nó.

Để bắt đầu, ta cần tạo một folder cấu hình. Ta sẽ sử dụng folder /etc/redis thông thường, có thể được tạo bằng lệnh :

  • sudo mkdir /etc/redis

Bây giờ, hãy sao chép file cấu hình Redis mẫu có trong repository lưu trữ nguồn Redis:

  • sudo cp /tmp/redis-stable/redis.conf /etc/redis

Tiếp theo, ta có thể mở file để điều chỉnh một số mục trong cấu hình:

  • sudo nano /etc/redis/redis.conf

Trong file , hãy tìm chỉ thị được supervised . Hiện tại, điều này được đặt thành no . Vì ta đang chạy hệ điều hành sử dụng hệ thống systemd init, ta có thể thay đổi điều này thành systemd :

/etc/redis/redis.conf
. . .  # 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 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. Ta cần chọn một vị trí mà Redis sẽ có quyền viết và user bình thường không thể xem được.

Ta sẽ sử dụng folder /var/lib/redis cho việc này, mà ta sẽ tạo trong giây lát:

/etc/redis/redis.conf
. . .  # 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.

Tạo một file đơn vị hệ thống Redis

Tiếp theo, ta có thể tạo một file đơn vị systemd để hệ thống init có thể quản lý quá trình Redis.

Tạo và mở file /etc/systemd/system/redis.service để bắt đầu:

  • sudo nano /etc/systemd/system/redis.service

Bên trong, ta có thể bắt đầu phần [Unit] bằng cách thêm mô tả và xác định yêu cầu mạng phải khả dụng trước khi bắt đầu dịch vụ này:

/etc/systemd/system/redis.service
[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 bạn dưới dạng root . Ta nên sử dụng một user và group chuyên dụng, mà ta sẽ gọi là redis cho đơn giản. Ta sẽ tạo ra những thứ này trong giây lát.

Để bắt đầu dịch vụ, ta chỉ cần gọi file binary redis-server , được chỉ vào cấu hình của ta . Để ngăn chặn nó, ta có thể sử dụng lệnh shutdown Redis, lệnh này có thể được thực thi với mã binary redis-cli . Ngoài ra, vì ta muốn Redis khôi phục các lỗi khi có thể, ta sẽ đặt lệnh Restart thành “luôn luôn”:

/etc/systemd/system/redis.service
[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ể xác định mục tiêu systemd mà dịch vụ sẽ đính kèm nếu được bật (được cấu hình để bắt đầu khi server khởi động ):

/etc/systemd/system/redis.service
[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ạo User Redis, Group và Thư mục

Bây giờ, ta chỉ cần tạo user , group và folder mà ta đã tham chiếu trong hai file trước.

Bắt đầu bằng cách tạo user và group redis . Điều này có thể được thực hiện trong một lệnh duy nhất bằng lệnh :

  • sudo adduser --system --group --no-create-home redis

Bây giờ, ta có thể tạo folder /var/lib/redis bằng lệnh :

  • sudo mkdir /var/lib/redis

Ta nên 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

Điều chỉnh các quyền để regular user không thể truy cập vị trí này:

  • sudo chmod 770 /var/lib/redis

Bắt đầu và kiểm tra Redis

Bây giờ, ta đã sẵn sàng khởi động server Redis.

Bắt đầu dịch vụ 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

Bạn sẽ thấy một cái gì đó giống như sau:

Output
● 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 version Redis

Để 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

Bạn nên thấy:

Output
PONG

Kiểm tra xem bạn có thể đặt các phím bằng lệnh :

  • set test "It's working!"
Output
OK

Bây giờ, lấy giá trị bằng lệnh :

  • get test

Bạn có thể truy xuất giá trị mà ta đã lưu trữ:

Output
"It's working!"

Thoát khỏi dấu nhắc Redis để quay lại shell :

  • exit

Như một bài kiểm tra cuối cùng, hãy khởi động lại version Redis:

  • sudo systemctl restart redis

Bây giờ, hãy 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!"

Quay lại shell khi bạn hoàn thành:

  • exit

Bật Redis để bắt đầu khi server khởi động

Nếu tất cả các thử nghiệm của bạn đều hoạt động và bạn muốn tự động khởi động Redis khi server của bạn khởi động, bạn có thể bật dịch vụ systemd.

Để làm như vậy, hãy nhập:

  • sudo systemctl enable redis
Output
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

Kết luận

Đến đây bạn đã cài đặt và cấu hình version Redis trên server Ubuntu 16.04 của bạn . Để tìm hiểu thêm về cách bảo mật cài đặt Redis của bạn, hãy xem Cách bảo mật cài đặt Redis của bạn trên Ubuntu 14.04 (từ bước 3 trở đi). Mặc dù nó được viết với Ubuntu 14.04, nhưng nó hầu như cũng hoạt động cho 16.04.


Tags:

Các tin liên quan

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
Cách backup và khôi phục dữ liệu Redis của bạn trên Ubuntu 14.04
2015-09-14
Cách thiết lập server Redis làm Trình xử lý phiên cho PHP trên Ubuntu 14.04
2015-08-21
Cách cấu hình một cụm Redis trên CentOS 7
2015-07-30
Cách cấu hình cụm Redis trên Ubuntu 14.04
2015-07-16
Cách cấu hình bộ đệm Redis để tăng tốc WordPress trên Ubuntu 14.04
2014-12-15
Cách cấu hình giám sát Sensu, RabbitMQ và Redis trên Ubuntu 14.04
2014-09-29