Bazy danych NoSQL - Redis
LICZBA DNI: 3 (24h)
KOD KURSU: REDIS
O szkoleniu
DLA KOGO?
Szkolenie jest adresowane do programistów, architektów oraz administratorów aplikacji, którzy chcą tworzyć lub utrzymywać systemy oparte o skalowalne bazy danych NoSQL, a w szczególności osób, dla których wydajność opracowywanych rozwiązań oraz wolumen przetwarzanych danych ma wysoki priorytet
Szkolenie jest także kierowane do osób zajmujących się obecnie tworzeniem relacyjnych baz danych, które chcą uzupełnić swoją wiedzę o technologie alternatywne, które stopniowo wypierają bazy relacyjne z poszczególnych obszarów zastosowań
WYMAGANIA
Od uczestników wymagana jest podstawowa znajomość baz danych oraz podstawowa umiejętność programowania w języku Java
ZALETY
Program obejmuje zarówno ogólne wprowadzenie w tematykę baz danych NoSQL jak i całościowe przedstawienie bazy danych Redis
Szkolenie jest unikalne, gdyż tematyka poruszana w jego trakcie nie jest wyczerpująco ujęta w dostępnej literaturze, a wiedza na ten temat jest mocno rozproszona
Program jest ciągle uaktualniany ze względu na szybki rozwój rozwiązań, których dotyczy szkolenie
Cele szkolenia
Baza danych typu NoSQL, funkcjonalność, zastosowanie i ograniczenia
Wprowadzenie do baz nierelacyjnych, w szczególności baza danych Redis
Program
Wprowadzenie do baz danych NoSQL
- Przyczyna powstania baz chmurowych
- Spójność, Dostępność, Odporność na partycjonowanie
- Twierdzenie CAP
- Co różni bazy NoSQL od baz relacyjnych
- Podstawowe parametry baz NoSQL
- Klasyfikacja i przegląd baz NoSQL (Cassandra, HBase, Mongo, Riak, CouchDB, Tokyo Cabinet, Voldemort, etc.)
- Problem transakcyjności i replikacji w bazach danych NoSQL, w tym w Redis
- Unikalne cechy Redis
Podstawowy pracy z Redis
- Składowe Redis
- Korzystanie z redis-cli
- Dostęp do Redis za pomocą bibliotek zewnętrznych
- Podstawowe operacje na danych
Typy danych w Redis
- Łańcuchy znakowe
- Listy
- Sety
- Posortowane sety
- Hashe
Modelowanie domeny z wykorzystaniem typów danych Redis
- Model domeny a model danych
- Model logiczny, koncepcyjny, fizyczny a typy danych redis
- Modelowanie zależności - agregacja, kompozycja, dziedziczenie itd
- Ograniczenia i rzeczywiste problemy, dobre i złe praktyki
- Przykłady
Komendy w Redis
- Dotyczące kluczy: RANDOMKEY, SCAN
- Dotyczące operacji na typach danych: APPEND, HKEYS
- Pub/Sub: PUBLISH, SUBSCRIBE
- Dotyczące transakcji: MULTI, WATCH
- Dotyczące serwera: SHUTDOWN, SAVE
- Dotyczące połączenia: AUTH, SELECT
Wewnętrzne mechanizmy
- Dynamiczne łańcuch znakowe
- Zdarzenia
- Pamięć wirtualna
- Obsługa połączeń od klientów
- Obsługa sygnałów POSIX
- Redis RDB Dump File Format
- Redis Serialization Protocol
Klastrowanie, wysoka dostępność, odporność na awarie
- Sharding
- Redis Sentinel
- Partycjonowanie
- Replikacja
- Persystencja
- Backupowanie
Mechanizmy automatyzacji pracy
- Skrypty i interpreter Lua
- Pipelining
- Transakcje
- Publish/Subscribe
- Powiadomienia dotyczące kluczy
- Wygasanie i czas życia kluczy/danych
- Masowe operacje na danych
Wydajność i optymalizacja
- Optymalizacja wykorzystania pamięci
- Obsługa danych przekraczających ilość pamięci RAM
- Skalowanie odczytów i zapisów
- Benchmarki i redis-benchmark
- Dobre praktyki
Bezpieczeństwo
- Uwierzytelnianie i autoryzacja
- Bezpieczeństwo na poziomie danych
- Bezpieczeństwo na poziomie komend
- Bezpieczeństwo w klastrze, bezpieczeństwo na poziomie procesów serwera, bezpieczeństwo sieciowe
Administracją bazą danych Redis
- Instalacja i podstawowa konfiguracja Redis
- Najczęstsze czynności administracyjne
- Aktualizacja do wyższych wersji, migracja i backupowanie danych
- Dodawanie/usuwanie węzłów do repliki/klastra oraz resynchronizacja
- Panele administracyjne i monitorujące, narzędzia wspomagające
- Redis Desktop Manager
- Redsmin
- ReAdmin
- Redis Commander
- Redmon
- Redis-tools, redis-rdb-tools
- RedisLive
- Inne
- Pozostałe czynności administracyjne
Diagnostyka problemów i sytuacje awaryjne
Przegląd narzędzi, bibliotek klienckich, sterowników
- Redisson oraz Jedis w szczegółach jako przykłady biblioteki klienckiej dla Java
- Pobieranie i instalacja, wersje sterownika/Javy/bazy danych
- API
- Własna aplikacja
- (opcja) StackExchange.Redis w szczegółach jako przykład biblioteki klienckiej dla .NET
- Pobieranie i instalacja, wersje sterownika/.net/bazy danych
- API
- Własna aplikacja
- Inne
Wdrożenia Redis w Polsce i na świecie
