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
:
. . .
# 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:
. . .
# 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:
[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
.
[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):
[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:
● 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ć:
PONG
Sprawdź, czy możesz ustawić klucze poprzez wpisanie:
127.0.0.1:6379> set test “It’s working!”
OK
Teraz odzyskaj wartość poprzez wpisanie:
127.0.0.1:6379> get test
Powinieneś być w stanie odzyskać wartość, którą zapisaliśmy:
"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:
"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
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.