quickie-redis



quickie-redis

0 0


quickie-redis

Support du Quickie sur Redis du 05/03

On Github julglotain / quickie-redis

Une base de donnée clé-valeur

Voire plus si affinité

Agenda

  • Redis, c'est quoi ?
  • Et pourquoi ?
  • Ca fonctionne comment ?
  • Quand ne pas l'utiliser ?
  • Nos retours d'expérience
  • Un peu plus de détails
  • D'autres questions ?

Redis c'est quoi ?

Une base de donnée clé-valeur avancée

strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs.

Architecture

Dévelopé en C

Mono thread

Support disponible pour de multiple language

In-Memory

youhou

Créée par Salvatore Sanfilippo en 2009 @antirez

Redis est utilisé par ...

and Youporn ...

Pourquoi Redis ??

  • Cache
  • Latest items
  • Counting stuff (analytics)
  • Queues
  • Store sessions
  • Leaderboard
  • Etc ...

Comment fonctionne redis ?

Plusieurs types de structure

Et un ensemble de commandes pour les manipuler

Types de structure

Primitive values (String, Integer, float)

  
> set mykey somevalue
OK
> get mykey
"somevalue"
> mset a 10 b 20 c 30
OK
> mget a b c
1) "10"
2) "20"
3) "30"
  
  
> set counter 100
OK
> incr counter
(integer) 101
> incrby counter 50
(integer) 152
  
  
> type mykey
string
> exists mykey
(integer) 1
> del mykey
(integer) 1
  

Lists

   
> rpush mylist A
(integer) 1
> rpush mylist B
(integer) 2
> lpush mylist first
(integer) 3
> lrange mylist 0 -1
1) "first"
2) "A"
3) "B"
  
  
> rpush mylist a b c
(integer) 3
> rpop mylist
"c"
> rpop mylist
"b"
> rpop mylist
"a"
  

Quelques cas d'utilisation

  • Dernier item vu ou posté (Twitter)
  • Communication entre process (Ruby/Resque)

Hashes

  
> hmset user:1000 username antirez birthyear 1977 verified 1
OK
> hget user:1000 username
"antirez"
> hget user:1000 birthyear
"1977"
> hgetall user:1000
1) "username"
2) "antirez"
3) "birthyear"
4) "1977"
5) "verified"
6) "1"
  

Sets

  
> sadd myset 1 2 3
(integer) 3
> smembers myset
1. 3
2. 1
3. 2
> sismember myset 3
(integer) 1
> sadd news:1000:tags 1 2 5 77
(integer) 4
 sinter tag:1:news tag:2:news tag:10:news tag:27:news
  

Sorted Sets

  
> zadd hackers 1953 "Richard Stallman"
(integer) 1
> zadd hackers 1969 "Linus Torvalds"
(integer) 1
> zadd hackers 1912 "Alan Turing"
(integer) 1
> zrange hackers 0 -1
1) "Alan Turing"
3) "Richard Stallman"
5) "Linus Torvalds"
  

Autre commandes

Transaction

  
> MULTI
OK
> INCR foo
QUEUED
> INCR bar
QUEUED
> EXEC
1) (integer) 1
2) (integer) 1
  

Publish / Subscribe

Retour d'experience

World Economic Forum

Demo Quickie/Tools in action

Questions ??

Merci!!

TRY.REDIS.IO

sources @GITHUB