presentation of redis

Post on 02-Jul-2015

551 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A presentation of Redis for the norwegian Java Usergroup javaBin. In norwegian.

TRANSCRIPT

Redis

Ole-Martin Mørk - Bekk Consulting AS

javaBin14/03/12

onsdag 14. mars 2012

AgendaIntroduksjon til Redis

Datatyper

Persistering

Replikering og Sharding

Tips og triks

onsdag 14. mars 2012

Hva er Redis?

• En in-memory key/value datastore

• Utrolig rask

• Masse funksjonalitet

onsdag 14. mars 2012

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

Datatyper i Redis

onsdag 14. mars 2012

Datatyper i Redis

> set usergroup javabinOK> get usergroup"javabin"> del usergroup(integer) 1

> incr antall(integer) 1> decr antall(integer) 0

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

onsdag 14. mars 2012

Datatyper i Redis

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

> lpush members Sven(integer) 1> lpush members Kjetil(integer) 2> lpush members Ole-Martin(integer) 3

> rpop members"Sven"> lrange members 0 21) "Ole-Martin"2) "Kjetil"

onsdag 14. mars 2012

Datatyper i Redis

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

> sadd jbmeet nosql(integer) 1> sadd jbmeet jvm(integer) 1> sadd exmeet nosql(integer) 1

> sunion jbmeet exmeet1) "nosql"2) "jvm"> spop jbmeet1) "nosql"

onsdag 14. mars 2012

Datatyper i Redis

> hset usergroup name javabin(integer) 1

> hset usergroup members 1000(integer) 1

> hgetall usergroup1) "name"2) "javabin"3) "members"4) "1000"

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

onsdag 14. mars 2012

Datatyper i Redis

> zadd pizza 10 nosql(integer) 1> zadd pizza 20 jvm(integer) 1

> zrangebyscore pizza 0 201) "nosql"2) "jvm"

> zrevrangebyscore pizza inf -inf1) "jvm"2) "nosql"

• Strings

• Lists

• Sets

• Hashes

• Sorted Sets

onsdag 14. mars 2012

Eksempel

onsdag 14. mars 2012

Applikasjon

onsdag 14. mars 2012

Datamodell

storyId1..5

zstoriesstoryId:votes

story:1byte[]story:2byte[]

story:tag:1tag1, tag2, tag3

tag:story:2tagnavn1, tagnavn2

tag:2story1, story2

tag:tagnavn1story:1, story:2

onsdag 14. mars 2012

Persistering

onsdag 14. mars 2012

RDB persistence

• Dumper hele databasen til disk

• På gitte intervaller

• Antall skriv

• Antall minutter

onsdag 14. mars 2012

AOF persistence

• Skriver kontinuerlig til disk

• Tre flush-nivåer

• Hver skriv

• Hvert sekund

• OS-et bestemmer

onsdag 14. mars 2012

Anbefalt

onsdag 14. mars 2012

Replikering&

Sharding

onsdag 14. mars 2012

Replikering

onsdag 14. mars 2012

Sharding

• Ikke innebygd støtte for sharding

• Må implementeres selv

onsdag 14. mars 2012

maskin 1

32 instanser

maskin 2

32 instanser32 instanser

Server

onsdag 14. mars 2012

Annen funksjonalitet

• Transaksjoner

• Optimistisk låsing

• Expire keys

• Publish/Subscribe

• Pipelining

onsdag 14. mars 2012

Redis fremover

• 2.6 branch kom forrige uke

• 3.0 mot slutten av året.

onsdag 14. mars 2012

Viktig å huske på

• Vær konsistent i nøkkel-navngivningen

• Lær deg datatypene

• Sharding

• Garbage-collection

onsdag 14. mars 2012

Argumenter

onsdag 14. mars 2012

It’s a VMWare database

Argumenter

onsdag 14. mars 2012

Argumenter

• Youporn bruker Redis

• 100.000.000 sidevisninger hver dag

• 300.000 spørringer per sekund

onsdag 14. mars 2012

http://redis.io

http://github.com/olemartin/digger

onsdag 14. mars 2012

Takk for meg!

Ole-Martin Mørk

@olemartinabout.me/olemartin

onsdag 14. mars 2012

top related