Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wprowadzenie do Redisa

Wprowadzenie do Redisa

(In Polish)

Presented at Bydgoszcz Web Development Meetup #6

Michał Szajbe

September 17, 2014
Tweet

More Decks by Michał Szajbe

Other Decks in Programming

Transcript

  1. Czym jest Redis? • Baza danych typu klucz-wartość# • Serwer

    struktur danych# • Pozwala na atomiczne operacje na danych# • Trzyma dane w pamięci operacyjnej
  2. key-value store • Klucz = unikalny identyfikator# • Wartość =

    dane# • Analogia: hash, map, tablica asocjacyjna# • Przykład: Zbiór PESEL, książka telefoniczna
  3. String • Podstawowa struktura (nie typ!) danych w Redisie# •

    Może zawierać dowolne dane, np. obrazy JPEG, bitmapy, tekst, serializowane obiekty# • Max 512 MB
  4. Lista • Uporządkowana kolekcja stringów (nie tablica!)# • Możliwość dodania

    elementu od prawej lub lewej strony# • Bardzo szybki dostęp do skrajnych elementów, wolniejszy do środkowych - O(N) list e1 e2 e3
  5. Lista RPUSH speakers Artur 
 RPUSH speakers Michał speakers Artur

    Michał LPUSH speakers Bartek speakers Bartek Artur Michał
  6. Lista LLEN speakers 3 LRANGE speakers 0 -2 Bartek Artur

    RPOP speakers Michał speakers Bartek Artur
  7. Przykład: Newsfeed LPUSH newsfeed Redis ! LTRIM newsfeed 0 3

    newsfeed Redis Fotki J. Lawrence WordPress
  8. Zbiór (Set) • Nieuporządkowana kolekcja stringów# • Szybkie dodawanie, usuwanie

    i sprawdzanie istnienia elementów w zbiorze# • Tylko unikalne wartości set e1 e2 e3
  9. Zbiór (Set) SADD bookmarks bdgweb.pl ! SADD bookmarks monterail.com !

    SADD bookmarks codetunes.com bookmarks bdgweb.pl monterail.com codetunes.com
  10. Operacje na zbiorach set1 a b c set2 a x

    z SUNION set1 set2 a b c x z SINTER set1 set2 a SDIFF set1 set2 b c
  11. Operacje na zbiorach set1 a b c set2 a x

    z SMOVE set1 set2 c set1 a b set2 a x z c
  12. Hash • Mapuje stringi na wartości (też stringi)# • Dobre

    do reprezentacji obiektów hash field1 value1 field2 value2
  13. Hash HSET user name John ! HMSET user age 30

    gender male user name John age 30 gender male
  14. Uporządkowany zbiór (Sorted Set) • Połączenie zbioru z hashem# •

    Każdy element ma przypisany "score"# • Elementy są automatycznie porządkowane wg score# • Przydatne do budowania rankingów, indeksowania
  15. Uporządkowany zbiór (Sorted Set) ZADD clicks 1 link4 ! ZINCRBY

    clicks 1 link1 clicks link4 1 link1 2 link2 2 link3 4
  16. Uporządkowany zbiór (Sorted Set) ZRANGE clicks 0 1 link4 link1

    ZREVRANGE clicks 0 1 link3 link2 ZSCORE clicks link3 4
  17. Wygaszanie kluczy e87Yc0iK SET token e87Tc0iK ! EXPIRE token 5

    ! GET token ! ! ! GET token (nil) po upływie 5 sekund...
  18. Inne ficzery • Transakcje (poprzez kolejkowanie poleceń)# • Pub/sub# •

    Skryptowanie (w języku Lua)# • Sharding i replikacja