Redis

502 Aufrufe

Veröffentlicht am

redis präsentation

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
502
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Redis

  1. 1. Redis
  2. 2. Wer benutzt Redis?
  3. 3. Instagram • Redis powers their main feed, activity feed, sessions system. • Redis runs on several Quadruple Extra-Large Memory instances. • runs in a master-replica setup. Replicas constantly save to disk.
  4. 4. Stackoverflow • Use Redis as a caching layer for the entire network. • around 1.300.000 keys in Redis cache. • peak time we're getting a few hundred read/writes a second to Redis. • about 1% cpu usage • started storing much bigger things in Redis, like inboxes
  5. 5. Redis • Schlüssel-Werte Datenstruktur • In-Memory-Datenbank • Transaction (optimistic Locking) • Kein MapReduce
  6. 6. Philosophie Performance 100.000 Schreiboperation 80.000 Leseoperation pro Sekunde
  7. 7. Datenstrukturen • String • Hashes • Lists • Sets • Sorted Sets
  8. 8. String SET mykey "Hello" GET mykey
  9. 9. Hash HSET myhash field1 "Hello" HGET myhash field1
  10. 10. Sets SADD myset "Hello" SADD myset "World" SMEMBERS myset
  11. 11. Sorted Sets ZADD myzset 1 "one" ZADD myzset 1 "uno" ZADD myzset 2 "two" ZRANGE myzset 0 -1 WITHSCORES
  12. 12. Praktikum
  13. 13. Abfrage Alle Buchungen, bei denen der Flug in Düsseldorf (DUS) begonnen wird.
  14. 14. modelleriung java feingranular
  15. 15. Datenstruktur Schlüssel Wert Set bookings 00QKXC 00D3N0 String exposed:00QKXC 0 Set passengers:00QKXC Anna:Becker Alexander:Becker Hash Anna:Becker salutations => MS firstname => Anna lastname => Becker List flights:00QKXC flight:TG921 flight:TG920 Hash flight:TG921 date => 1373407200 departs => 1373460300 fromAirportAbbr => DUS Hash service:TG921 Infant Hash seats:TG921 RAUSS/ARMINMR => 08C (Non-smoking) Hash fares:00QKXC type => ADT taxes => 57.22 Set segments:00QKXC 1 2
  16. 16. Realisierung Set<String> allBookingIds = jedis.smembers(BOOKINGS); String flightId; for(String bookingId : allBookingIds) { flightId = jedis.lrange(FLIGHTS + bookingId, 0, 0).get(0); if(jedis.hget(flightId, FROM_AIRPORT_ABBR).equals(startAirport)){ allBookings.add(getBooking(bookingId)); } }
  17. 17. modelleriung java grobgranular
  18. 18. ticket:00P5LM:eticket:220327240100C1,220327240100C2:exposed:1:flights:DUS->CDG->CDG->DUS Hash Name key => flights flights => {...........} Datenstruktur
  19. 19. GUI-Client
  20. 20. Realisierung function getBookingsStartingIn($redis, $airport) { echo "----------------------------------------------------------n"; echo "Flüge die in $airport starten:n"; $tickets = $redis->query("*flights:$airport->*"); foreach ($tickets as $ticket){ echo "Flight " . $ticket["id"] . " starts in $airportn"; } echo "----------------------------------------------------------n"; }
  21. 21. Fazit • Einfache und schnelle Abfragen sind mit Redis sehr gut zu realisieren. • Gute Dokumentation. • Abfragesprache ist nicht mächtig.
  22. 22. Danke für die Aufmerksamkeit
  23. 23. Links • Praktikum (Wiki) • Installation (Webseite) • Redis Befehle (API) • NoSQL Einführung (Buch) • Seven Databases in Seven Weeks (Buch)

×