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

NoSQL CGN: Redis (05/2012)

NoSQL CGN: Redis (05/2012)

My introduction talk to Redis at the NoSQL user group Cologne in 05/2012. This presentation is in German.

Sebastian Cohnen

June 08, 2012
Tweet

More Decks by Sebastian Cohnen

Other Decks in Technology

Transcript

  1. About Me • Freier Entwickler ❤ Ruby/Rails & node.js ❤

    Performance & Scalability Engineering ❤ Distributed Load Testing ❤ CouchDB, Redis & Riak und ebenfalls interessiert an Erlang, AMQP, ...
  2. ...! in-memory Datenbank (KV Store) Datentypen: String, Hash, List, Set

    & sorted Set Master-Slave Replikation Transaktionen ASCII-basiertes Protokoll
  3. Getting Started http://redis.io/download zum Spielen 2.6.x – für Live-Systeme 2.4.x

    brew install redis (apt-get install redis) $ redis-cli > SET myval "bar" OK > GET myval "bar"
  4. Strings binary safe Byte-Array bitweiser Zugriff möglich numerische Werte werden

    optimiert gespeichert GET[BIT|RANGE], SET[BIT|RANGE], APPEND, STRLEN, ... INCR[BY], DECR
  5. Hashes Hash Map mit Key und Value, jeweils Strings z.B.

    zum Abbilden von Objekten direkter Zugriff auf einzelne, mehrere oder alle Attribute HGET, HMGET, HGETALL HSET, HMSET HKEYS, HVALS, HLEN
  6. Mengen unsortiert (S) & sortierte (Z) [S|Z]ADD, [S|Z]REM, [S|Z]CARD [S|Z]DIFF,

    [S|Z]INTER, [S|Z]UNION ZSCORE, ZRANK, ZRANGE, ZREMRANGEBYRANK
  7. Transaktionen > MULTI OK > INCR foo QUEUED > INCR

    bar QUEUED > EXEC 1) (integer) 1 2) (integer) 1
  8. Benchmarks sind doof ;) redis-benchmark -P 64 -n 1000000 \

    -t incr,get,set => 370k SET/s | 450k GET/s | 347k INCR/s in bisherigen Tests sind dauerhafte 30k OPS/s auf EC2 kein Problem (YMMV) http://redis.io/topics/benchmarks
  9. Performance generell gute, stabile Latenzen & guter Durchsatz algorithmische Komplexität

    ist gut dokumentiert Optimierung ist oft einfach Wichtig Pipelining nutzen Domain Socket vs. TCP Socket
  10. IPC Pub/Sub Pattern SUBSCRIBE user.new PUBLISH user.new 4232 PSUBSCRIBE user.*

    Kommunikation zwischen Prozessen (Master, Worker, ...)
  11. 1st class DB Integraler Bestandteil / Erweiterung der Anwendungslogik Sets,

    Lists und Hashes um spezielle Aufgaben zu lösen alle Requests aus Redis (“live cache”) Datenbank als Fallback
  12. Resources Infos zu Redis & Dokumentation: http://redis.io/ Blog von Salvatore:

    http://antirez.com https://groups.google.com/forum/#!topic/redis-db/ d4QcWV0p-YM http://highscalability.com/blog/2012/4/2/youporn- targeting-200-million-views-a-day-and-beyond.html