Weitere ähnliche Inhalte Kürzlich hochgeladen (20) Redis3. 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. 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
16. 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
17. 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));
}
}
21. 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";
}
23. Fazit
• Einfache und schnelle Abfragen sind mit
Redis sehr gut zu realisieren.
• Gute Dokumentation.
• Abfragesprache ist nicht mächtig.
25. Links
• Praktikum (Wiki)
• Installation (Webseite)
• Redis Befehle (API)
• NoSQL Einführung (Buch)
• Seven Databases in Seven Weeks (Buch)