Redis

Ffdbe721956f8197910842756fcfb44a?s=47 Milan Popović
September 14, 2013
180

 Redis

Redis predstavlja vrlo moćno open source NoSQL rešenje. Prezentacija će vas upoznati s osnovama Redisa sa akcentom na strukture podataka koje podržava. Prikazane su biblioteke za rad sa Redisom iz PHP-a.

Ffdbe721956f8197910842756fcfb44a?s=128

Milan Popović

September 14, 2013
Tweet

Transcript

  1. REDIS / Milan Popović @komita1981

  2. AGENDA Redis - opšti pregled Strukture podataka Postojanost podataka Transakcije

    Organizacija podataka Redis & PHP
  3. KRATKA ISTORIJA PROJEKTA REDIS Projekat započeo Salvatore Sanfilipo - 2009.

    godine Napisan u jeziku ANSI C Radi na većini POSIX sistema (Linux, OS X, Solaris...) Open source - - 98 kontributora Od 2010. godine sponzoriše ga VMWare Projektu se priključio @antirez https://github.com/antirez/redis Pieter Noordhuis
  4. ŠTA JE REDIS REmote DIctionary Server Napredna key value baza

    Server struktura podataka - string, set, sorted set, list i hash Podaci se nalaze u memoriji Ekstremno brz - 100K operacija u sekundi Nema indeksa i nema šeme Radi sa komandama Atomske operacije Predvidive performanse Radi na 6379 text based tcp protokolu
  5. ŠTA JE REDIS Jednostavna instalacija $ s u d o

    a p t - g e t i n s t a l l r e d i s - s e r v e r Podesiva postojanost podataka Master-slave replication Particioniranje Lua scripting - stored procedures Redis-CLI i Redis Sentinel Dostupni klijenti za gotovo sve programske jezike
  6. STRUKTURE PODATAKA Strings, Hashes, Lists, Sets, Sorted Sets img src

    - http://www.slideshare.net/dvirsky/kicking-ass- with-redis
  7. STRINGS Predstavlja osnovnu strukturu Može da sučuva podatke veličine do

    512 MB Primeri stringova: post_counter - 9888 current_mode - "Maximum" bitcode - 0101 average_points - 15.5
  8. KOMANDE NAD STRINGOVIMA Osnovne komande (SET, GET, MSET, MGET, GETSET)

    Integer&Float (INCR, INCRBY, DECR, DECRBY, INCRBYFLOAT) String (APPEND, SETRANGE, GETRANGE, STRLEN) Expiring (SETEX, PSETEX) Locking (SETNX, PSETNX) Bit (BITCOUNT, BITOP, SETBIT)
  9. HASHES Predstavljaju niz field->value parova Pandam asocijativnim nizovima u PHP-u

    Zauzimaju malo prostora Do 2 32 -1 field->value parova Primer hash-a: user:2 username komita1981 first_name Milan second_name Popović age 32
  10. KOMANDE NAD HASH-EVIMA Osnovne komande (HSET, HGET, HMSET, HMGET, HGETALL,

    HKEYS, HVALS, HDEL) Field komande (HEXISTS, HLEN) Integer & Float (HINCRBY, HINCRBYFLOAT)
  11. SETS Predstavlja neuređenu strukturu jedinstvenih elemenata Pandam numeričkim nizovima u

    PHP-u Do 232-1 elemenata Primer seta: even_numbers {2, 4, 6, 8, 10...} group_members {'John', 'Mike', 'Bob', 'Alice'...}
  12. KOMANDE NAD SETOVIMA Osnovne komande (SADD, SREM, SMEMBERS, SCARD, SISMEMBER)

    Pomoćne komande (SRANDMEMBER, SPOP, SMOVE) Komande skupovnih operacija (SINTER, SUNION, SDIFF, SINTERSTORE, SUNIONSTORE, SDIFFSTORE)
  13. SORTED SET Uređena struktura jedinstvenih elemenata Do 232-1 elemenata Primer

    sorted seta: score_board: Partizan 65 Rad 50 Vojvodina 55 Radnički 45
  14. KOMANDE NAD SORTIRANIM SETOVIMA Osnovne komande (ZADD, ZREM, ZCARD, ZSCORE,

    ZCOUNT, ZINCRBY) Komande skupovnih operacija (ZINTERSTORE, ZUNIONSTORE) Komande ranga (ZRANK, ZREVRANK) Komande opsega (ZRANGE, ZREVRANGE, ZREMRANGEBYRANK) Komande bodova (ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYSCORE)
  15. LISTS Predstavlja niz stringova Elementi se ubacuju na početak ili

    kraj (glavu i rep) Do 232-1 elemenata Primer liste: last_registered_users: [memre, remem, streamer, poper...] last_logins: [memre, remem, memre, streamer, poper, remem...]
  16. KOMANDE NAD LISTAMA Osnocne operacije (LPUSH, RPUSH, LPOP, RPOP, LLEN)

    Blok komande (BRPOP, BLPOP) Pomoćne komande (LINDEX, LRANGE, LSET, LPUSH, RPUSH...)
  17. ZAJEDNIČKE KOMANDE DEL, RENAME, TYPE, SORT EXPIRE, PEXPIRE, EXPIREAT, PEXPIREAT,

    PERSIST, TTL, PTTL KEYS, MONITOR, FLUSHDB
  18. PUB/SUB Publish/Subscribe messaging paradigm PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE

  19. POSTOJANOST PODATAKA RDB persistance AOF persistance No persistance AOF+RDB persistance

  20. TRANSAKCIJE Redis transakcije != RDBMS transakcije Atomske operacije MULTI -

    EXEC WATCH - UNWATCH - DISCARD
  21. ORGANIZACIJA PODATAKA Relacione baze : Koje odgovore imam? Redis :

    Koja pitanja imam? Dobri nazivi ključeva Separatori u nazivu - najčešće ":"
  22. KO KORISTI REDIS?

  23. PHP & REDIS PhpRedis Predis Redisent Rediska RedisServer Credis

  24. HOĆETE DA NAUČITE REDIS http://try.redis.io/ The Little Redis Book Redis

    in action
  25. KRAJ MILAN POPOVIĆ / MILANPOPOVIC.ME