10 sie

Jak zainstalować i skonfigurować Redis na Ubuntu 16.04

Jak zainstalować i skonfigurować Redis na Ubuntu 16

Wprowadzenie

Redis jest wewnątrz pamięciową, typu klucz-wartość pamięcią podręczną, znaną ze swojej elastyczności, wydajności i wsparcia języków programowania. W tym przewodniku zademonstrujemy, jak zainstalować i skonfigurować Redis na serwerze Ubuntu 16.04.

Wymagania

Aby ukończyć ten przewodnik, będziesz musiał uzyskać dostęp do serwera Ubuntu 16.04. Będziesz potrzebował użytkownika nie root, ale z przywilejami sudo, aby móc skorzystać z funkcji administracyjnych wymaganych w tym procesie. Możesz nauczyć się, jak założyć konto z takimi przywilejami poprzez sprawdzenie naszego przewodnika po serwerze Ubuntu 16.04.

Jeśli jesteś gotowy do startu, zaloguj się na swój serwer Ubuntu 16.04 za pomocą użytkownika sudo i zaczniemy.

Instalacja pakietów zależnych

Aby zdobyć najnowszą wersję Redis, musimy skompilować i zainstalować niezbędne oprogramowanie ze źródeł. Zanim ściągniemy kod, musimy załatwić zależne pakiety, abyśmy mogli skompilować nasze oprogramowanie.

Żeby to zrobić, możemy zainstalować meta-pakiet build-essential z repozytoriów Ubuntu. Będziemy również ściągali pakiet tcl, którego możemy użyć do przetestowania naszego systemu binarnego.

Możemy zaktualizować nasz lokalny pakiet apt i zainstalować zależności poprzez wpisanie:
sudo apt-get update
sudo apt-get install build-essential tcl

Ściągnięcie, kompilacja i instalacja Redis

Następnie, możemy zacząć przygotowanie Redis.

Ściągnięcie i rozpakowanie kodu źródłowego

Przez to, że nie musimy przechowywać kodu źródłowego, który będziemy kompilować (zawsze można ściągnąć go ponownie), będziemy kompilować Redis w folderze /tmp. Przenieśmy się tam:
cd /tmp

Teraz, ściągnij najnowszą, stabilną wersję Redis. Jest ona zawsze dostępna pod adresem URL:
curl -O http://download.redis.io/redis-stable.tar.gz

Rozpakuj archiwum tar poprzez wpisanie:
tar xzvf redis-stable.tar.gz

Przenieś się do folderu z kodem źródłowym Redis, który właśnie został wydobyty:
cd redis-stable

Instalacja Redis

Teraz, możemy skompilować kod Redis poprzez wpisanie:
make

Po tym, jak wszystko zostanie skompilowane, zrób test, aby upewnić się, że wszystko zostało skompilowane poprawnie. Możesz zrobić to poprzez wpisanie:
make test

Standardowo zajmuje to kilka minut. Jak tylko ten proces się skończy, możesz zainstalować Redis w systemie poprzez wpisanie:
sudo make install

Konfiguracja Redis

Teraz, kiedy Redis jest już zainstalowany, możemy rozpocząć jego konfigurację.

Aby rozpocząć, musisz stworzyć folder konfiguracyjny. Użyjemy folderu /etc/redis, który może zostać stworzony poprzez wpisanie:
sudo mkdir /etc/redis

Teraz skopiuj przykładowy plik konfiguracyjny Redis, zawarty w archiwum ze źródłem Redis:
sudo cp /tmp/redis-stable/redis.conf /etc/redis

Następnie, możemy otworzyć plik, aby dopasować kilka rzeczy do naszej konfiguracji:
sudo nano /etc/redis/redis.conf

W pliku, znajdź supervised. Obecnie jest ustawiona na no. Przez to, że działamy na systemie operacyjnym, który używa systemu systemd do inicjalizacji, możemy zmienić to na 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

. . .

Następnie, znajdź folder dir. Ta opcja precyzuje folder, którego Redis użyje do przechowywania trwałych danych. Musimy wybrać lokalizację, do której Redis będzie miał uprawnienia i która nie jest widoczna dla zwykłych użytkowników.

Użyjemy do tego folder /var/lib/redis, który można utworzyć w momencie:

/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

. . .

Zapisz i zamknij plik, kiedy skończysz.

Stworzenie pliku systemd dla Redis

Następnie, możemy utworzyć plik jednostkowy systemd, aby system mógł poradzić sobie z procesem Redis.

Utwórz i otwórz plik /etc/systemd/system/redis.service, aby rozpocząć:
sudo nano /etc/systemd/system/redis.service

Wewnątrz, możemy otworzyć sekcję [Unit] poprzez dodanie opisu i zdefiniowanie wymagań, aby sieć była dostępna przed rozpoczęciem działania tej usługi:

/etc/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target

W sekcji [Service] musimy sprecyzować zachowanie usługi. Dla celów bezpieczeństwa, nie powinniśmy uruchamiać usługi jako root. Powinniśmy użyć dedykowanego użytkownika i grupy, którego nazwiemy redis. Stworzymy ich za chwilę.

Aby uruchomić usługę, musimy wywolać redis-server, ukierunkowany na naszą konfigurację. Aby zatrzymać ten proces, możemy skorzystać z komendy Redis shutdown, która może być wykonana przy pomocy systemu dwójkowego redis-cli. Ponadto, w związku z tym, że chcemy, aby Redis ochłonął po niepowodzeniach, ustawimy Restart na always.

/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

W końcu, w sekcji [Install], możemy zdefiniować cel systemd, do jakiego usługa może się dołączyć, jeśli jest to możliwe (konfiguracja do odpalenia usługi podczas startu systemu):

/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

Zapisz i zamknij plik.

Stworzenie użytkownika Redis, grupy i folderu

Teraz, musimy po prostu utworzyć użytkownika, grupy i folder, do których odwołaliśmy w poprzednich dwóch plikach.

Zacznij poprzez stworzenie użytkownika redis oraz grupy:
sudo adduser --system --group --no-create-home redis

Teraz, możemy stworzyć folder /var/lib/redis poprzez wpisanie:
sudo mkdir /var/lib/redis

Powinniśmy oddać użytkownikowi redis i grupie własność nad tym folderem:
sudo chown redis:redis /var/lib/redis

Dostosuj uprawnienia tak, aby zwykli użytkownicy nie mieli dostępu do tej lokalizacji:
sudo chmod 770 /var/lib/redis

Uruchom i przetestuj Redis.

Teraz jesteśmy gotowi, aby uruchomić serwer Redis.

Uruchom usługę Redis

Uruchom usługę systemd poprzez wpisanie:
sudo systemctl start redis

Sprawdź, czy usługa nie ma żadnych błędów poprzez wpisanie:
sudo systemctl status redis

Powinieneś zobaczyć coś, co wygląda tak:

Odpowiedź
● 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       

. . .

Przetestuj funkcjonalność Redis

Aby przetestować, czy usługa funkcjonuje prawidłowo, podłącz się do serwera Redis przy pomocy komendy:
redis-cli

W wierzu poleceń przetestuj łączność poprzez wpisanie:
127.0.0.1:6379> ping

Powinieneś zobaczyć:

Odpowiedź
PONG

Sprawdź, czy możesz ustawić klucze poprzez wpisanie:
127.0.0.1:6379> set test “It’s working!”

Odpowiedź
OK

Teraz odzyskaj wartość poprzez wpisanie:
127.0.0.1:6379> get test

Powinieneś być w stanie odzyskać wartość, którą zapisaliśmy:

Odpowiedź
"It's working!"

Wyjdź z wierza poleceń Redis, aby wrócić do zarządzania systemem operacyjnym:
127.0.0.1:6379> exit

Jako test końcowy, zrestartujmy instancję Redis:
sudo systemctl restart redis

Teraz, połącz się z klientem ponownie i potwierdź, że wartość testowa jest dostępna:
redis-cli

127.0.0.1:6379> get test

Wartość Twojego klucza powinna być wciąż dostępna:

Odpowiedź
"It's working!"

Wycofaj się z powrotem do systemy, jak skończysz.

Uruchamianie Redis przy starcie systemu

Jeśli wszystkie z naszych testów zadziałały i chciałbyś uruchomiać Redis automatycznie, kiedy Twój serwer startuje, możesz włączyć usługę systemd.

Aby tak zrobić, wpisz:
sudo systemctl enable redis

Odpowiedź
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

Wniosek

Teraz, Redis powinien być zainstalowany i skonfigurowany na serwerze SSD Ubuntu 16.04.