Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Redis

Krótki opis bazy danych Redis - coraz bardziej popularnego przedstawiciela rodziny NoSQL.
by

karol gruby

on 18 September 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Redis

Krótkie wprowadzenie 2012, gruby karol Redis jest... bazą danych NoSQL key/value store NoSQL? Nieformalny, zdecydowanie
nieścisły i nader pojemny termin określający nierelacyjne, zestrukturyzowane systemy składowania danych. MongoDB, CouchDB, Redis, memcached, ... bazą pamięciową szybki mały napisany w C
~16k linii kodu
~300kB kodu wynikowego
brak zależności MSET (10 keys) - 81300.81 rps
SET - 129870.13 rps
GET - 172413.80 rps
INCR - 178571.42 rps
LPUSH - 166666.67 rps
LPOP - 172413.80 rps
SADD - 175438.59 rps
SPOP - 169491.53 rps
LRANGE (first 100 elements) - 81300.81 rps
LRANGE (first 300 elements) - 37313.43 rps
LRANGE (first 450 elements) - 26881.72 rps
LRANGE (first 600 elements) - 21186.44 rps sprawdzony przydatny (zarazem prosty) Typy danych Klucze String List Set Hash Sorted set Klucze w Redis to ciągi znaków bezpieczne binarnie, tzw. binary safe strings. Oznacza to, że kluczem może być "zwykły" string, ale też każdy inny rodzaj danych, np. zserializowany obiekt Java. Klucze nie powinny być zbyt długie (max. 1kB). Binary safe string. Maksymalnie 512MB. Podstawowe operacje: ustaw, pobierz, dołącz wartość, pobierz długość, substring. Ciekawostki: dodaj/odejmij wartość, ustaw jeśli wcześniej nie było wartości, ustaw i pobierz starą wartość. Lista w redis to zwykła lista string'ów (pamiętamy translatora google), w której o kolejności elementów decyduje kolejność ich dodawania. Możliwe jest dodanie elementu poprzez wstawienie go na początek listy (head) lub na koniec listy (tail). Podstawowe operacje: dodaj "z przodu", dodaj "z tyłu", zdejmij "z przodu", zdejmij "z tyłu", określ indeks, usuń elementy z listy, ustaw/usuń na pozycji, ustaw przed/po, oblicz długość, pobierz elementy od-do. WORK IN PROGRESS Ciekawostki: zdejmij element "z przodu"/"z tyłu" lub poczekaj aż taki się pojawi, zdejmij element z jednej listy i wstaw go do innej. Maksymalna długość listy to 2^32 - 1 elementów. Nieposortowana kolekcja string'ów (elementy są unikalne). Maksymalny rozmiar zbioru to 2^32 - 1 elementów. Podstawowe operacje: dodaj/usuń wartość ze zbioru, pobierz liczbę elementów, pobierz elementy. Ciekawostki: pobierz losowo element, suma zbiorów, różnica zbiorów, przecięcie zbiorów. Hash to mapa pól (string) na wartości (string). Dlatego hash świetnie nadaje się do opisu obiektów (np. klasa Użytkownik z polami takimi jak imię, nazwisko, wiek, itd. itp.) Redis jest na tyle sprytny, że hasze z niewielką liczbą pól (niewielka = do kilkuset) zajmują mało przestrzeni, więc nawet niewielka instacja serwera może obsługiwać ich miliony . Każdy hasz może przechowywać do 2^32-1 par pole-wartość. Posortowany zbiór to kolekcja niepowtażalnych elementów, z których każdy ma jakąś wagę (score). Elementy w zbiorze posortowane są wg wagi. Ten typ danych pozwala Ci na szybkie dodanie, usunięcie lub modyfikację elementów. Elementy umieszczane są w kolejności (waga), a nie wtórnie sortowane. Podstawowe operacje: dodaj/usuń wartość ze zbioru, pobierz liczbę elementów (z wagą od/do), pobierz elementy wg indeksu, pobierz elementy wg wagi, ... Typowe zastosowania: indeksowanie danych, wyznaczanie rankingów (najpopularniejsze, najczęściej odwiedzane, ...). Czym jest Redis? Typy danych Ciekawe "chwyty" Redis i Grails "Na żywo, ale w studio" Podstawowe operacje: pobierz wartość pola w hash'u, ustaw wartość pola(pól), usuń pole, pobierz wszystkie klucze, pobierz wszystkie wartości, pobierz klucze i wartości, pobierz liczbę pól. Ciekawostki: ustaw wartość pola, jeśli nie istnieje, zwiększ watość pola. Ciekawe chwyty Scripting Replikacja Transakcje Wygasanie kluczy Publikuj/subskrybuj Wszystkie komentdy w ramach transakcji wykonywane są sekwencyjnie. Nie ma możliwości, aby żądanie wysłane z innego źródła zostało obsłużone w trakcie obsługi transakcji. Blok zamknięty w transakcję jest jak pojedyncza atomowa operacja. Przetworzone będą albo wszystkie polecenia w bloku, albo żadne. Transakcje REDiS (MULTI/EXEC) działają inaczej niż transakcje SQL. W rzeczywistości są one bardziej sposobem na wykonanie operacji zbiorczych z możliwością ich anulowania. Redis i Grails Redis Plugin Redis GORM Plugin Utrwalanie obiektów
Dynamiczne finder'y
Criteria queries
Named queries
Dziedziczenie Memoization Niskopoziomowe API
Transakcje
Pipelining
Publish/Subscribe
Pula połączeń Redis "Na żywo, ale w studio" Live demo... Dziękuję za uwagę
Full transcript