SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Introduction
HumanTalks Nantes - 13 Mai 2014
Francois-Guillaume Ribreau
REmote DIctionary Server (Redis) is created by @antirez, written in
C, released in 2009, BSD licensed, was supported by VMWare and
now Pivotal.
Redis is an open source, networked, single threaded, in-
memory, advanced key-value store with optional durability.
It is often referred to as a data structure server since keys
can contain strings, hashes, lists, sets and sorted sets.
Key features
‣ Atomic operations
‣ Lua Scripting
‣ Pub/Sub
‣ Transactions
‣ Master/Slave replication
‣ Cluster (with automatic sharding)*
‣ Automatic failover (Redis Sentinel)
‣ Append Only File (AOF) persistence
‣ Snapshot (RDB file) persistence
Key features
‣ Atomic operations
‣ Lua Scripting
‣ Pub/Sub
‣ Transactions
‣ Master/Slave replication
‣ Cluster (with automatic sharding)*
‣ Automatic failover (Redis Sentinel)
‣ Append Only File (AOF) persistence
‣ Snapshot (RDB file) persistence
* currently in 3.0.0 beta-3
Key advantages
‣ Blazing* Fast
‣ Robust
‣ Easy to setup, use and maintain
‣ Extensible with LUA scripting
Key advantages
‣ Blazing* Fast
‣ Robust
‣ Easy to setup, use and maintain
‣ Extensible with LUA scripting
* as the cool kids say these days.
Key disadvantages
‣ Persistence consumes lot of I/O when using RDB
‣ all your data must fit in memory
Key disadvantages
all your data must
fit in memory
again.
all your data
must fit in
memory
What for ?
http://bit.ly/138IoSr
‣ Cache out-of-process
‣ Duplicate detector
‣ LIFO/FIFO Queues*, Priority
Queue
‣ Distributed HashMap
‣ UID Generator
‣ Pub/Sub
‣ Real-time analytics & chat apps
‣ Counting Stuff
‣ Metrics DB
‣ Implement expires on items
‣ Leaderboards (game high scores)
‣ Geolocation lookup
‣ API throttling (rate-limits)
‣ Autocomplete
‣ Social activity feed
‣ ...
http://bit.ly/1qiVDjb
cache:/
Keys
users:mostfollowed
users:1:followers
users:1:tweets
users:1
cache:/
Keys
users:mostfollowed
users:1:followers
users:1:tweets
users:1
Value Type
String
Hash
Set*
List
Sorted Set
cache:/
Keys
users:mostfollowed
users:1:followers
users:1:tweets
users:1
<!DOCTYPE	
  html><html><head><meta	
  ...	
  
charset='utf-­‐8'	
  />
Example
field member
username fgribreau
followers 2204
89 8 55 5 34 13 21
0 1 2 3
hello... hey!.. @Crea... New	
  pro...
field score
@ladygaga 41359356
@youtube 41770322
@barackobama 42872391
@justinbieber 51428544
@katyperry 52811148
Value Type
String
Hash
Set*
List
Sorted Set
* Since 2.8.9, Redis supports a new type: HyperLogLog (an memory efficient way to store and count unique elements in a set)
$	
  redis-­‐cli
redis>	
  get	
  talk:414:description
(nil)
redis>	
  set	
  talk:414:description	
  "Je	
  propose	
  ce	
  sujet	
  suite	
  à	
  une	
  suggestion	
  de	
  Quentin."
OK
redis>	
  get	
  talk:414:description
"Je	
  propose	
  ce	
  sujet	
  suite	
  xc3xa0	
  une	
  suggestion	
  de	
  Quentin."
redis>	
  expire	
  talk:414:description	
  5
(integer)	
  1
#	
  then	
  after	
  5	
  seconds
redis>	
  get	
  talk:414:description
(nil)
redis>	
  getrange	
  talk:414:description	
  47	
  53
"Quentin"
redis>	
  incr	
  talk:414:views
(integer)	
  1
redis>	
  incrby	
  talk:414:views	
  10
"11"
cache:/
Keys
<!DOCTYPE	
  html><html><head><meta	
  ...	
  
charset='utf-­‐8'	
  />
ExampleValue Type
String
append	
  bitcount	
  bitop	
  bitpos	
  decr	
  decrby	
  get	
  getbit	
  getrange	
  getset	
  incr	
  incrby	
  incrbyfloat	
  mget	
  
mset	
  msetnx	
  psetex	
  set	
  setbit	
  setex	
  setnx	
  setrange	
  strlen
http://bit.ly/1kRJn0N
Keys
users:1
Example
field member
username fgribreau
followers 2204
Value Type
Hash
redis>	
  hmset	
  users:1	
  username	
  fgribreau	
  followers	
  2204
OK
redis>	
  hgetall	
  users:1
1)	
  "username"
2)	
  "fgribreau"
3)	
  "followers"
4)	
  "2204"
redis>	
  hincrby	
  users:1	
  followers	
  1
(integer)	
  2205
redis>	
  hget	
  users:1	
  followers
"2205"
redis>	
  hset	
  users:1	
  username	
  humantalks
(integer)	
  0
hdel	
  hexists	
  hget	
  hgetall	
  hincrby	
  hincrbyfloat	
  hkeys	
  hlen	
  hmget	
  hmset	
  hset	
  hsetnx	
  hvals	
  hscan
Keys ExampleValue Type
redis>	
  sadd	
  users:1:followers	
  89	
  8	
  55	
  5	
  34	
  13	
  21
(integer)	
  7
redis>	
  sadd	
  users:2:followers	
  0	
  1	
  1	
  2	
  3	
  5	
  8	
  13	
  21
(integer)	
  8
redis>	
  sinter	
  users:1:followers	
  users:2:followers
1)	
  "5"
2)	
  "8"
3)	
  "13"
4)	
  "21"
redis>	
  scard	
  users:1:followers
(integer)	
  7
sadd	
  scard	
  sdiff	
  sdiffstore	
  sinter	
  sinterstore	
  sismember	
  smembers	
  smove	
  spop	
  srandmember	
  srem	
  
sunion	
  sunionstore	
  sscan
users:1:followers
Keys ExampleValue Type
redis>	
  sadd	
  users:1:followers	
  89	
  8	
  55	
  5	
  34	
  13	
  21
(integer)	
  7
redis>	
  sadd	
  users:2:followers	
  0	
  1	
  1	
  2	
  3	
  5	
  8	
  13	
  21
(integer)	
  8
redis>	
  sinter	
  users:1:followers	
  users:2:followers
1)	
  "5"
2)	
  "8"
3)	
  "13"
4)	
  "21"
redis>	
  scard	
  users:1:followers
(integer)	
  7
sadd	
  scard	
  sdiff	
  sdiffstore	
  sinter	
  sinterstore	
  sismember	
  smembers	
  smove	
  spop	
  srandmember	
  srem	
  
sunion	
  sunionstore	
  sscan
users:1:followers 89 8 55 5 34 13 21Set
Keys ExampleValue Type
redis>	
  rpush	
  users:1:tweets	
  hello...
(integer)	
  1
redis>	
  rpush	
  users:1:tweets	
  hey!...
(integer)	
  2
redis>	
  lindex	
  users:1:tweets	
  1
"hey!..."
blpop	
  brpop	
  brpoplpush	
  lindex	
  linsert	
  llen	
  lpop	
  lpush	
  lpushx	
  lrange	
  lrem	
  lset	
  ltrim	
  rpop	
  rpoplpush	
  
rpush	
  rpushx
users:1:tweets
#	
  Shell	
  1
redis>	
  brpop	
  queue	
  0
#	
  blocking	
  until
1)	
  "queue"
2)	
  "my_task"
(14.27s)
#	
  Shell	
  2
redis>	
  lpush	
  queue	
  my_task
(integer)	
  1
Keys ExampleValue Type
redis>	
  rpush	
  users:1:tweets	
  hello...
(integer)	
  1
redis>	
  rpush	
  users:1:tweets	
  hey!...
(integer)	
  2
redis>	
  lindex	
  users:1:tweets	
  1
"hey!..."
blpop	
  brpop	
  brpoplpush	
  lindex	
  linsert	
  llen	
  lpop	
  lpush	
  lpushx	
  lrange	
  lrem	
  lset	
  ltrim	
  rpop	
  rpoplpush	
  
rpush	
  rpushx
users:1:tweets
0 1 2 3
hello... hey!... @Crea... New	
  pro...
List
#	
  Shell	
  1
redis>	
  brpop	
  queue	
  0
#	
  blocking	
  until
1)	
  "queue"
2)	
  "my_task"
(14.27s)
#	
  Shell	
  2
redis>	
  lpush	
  queue	
  my_task
(integer)	
  1
Keys ExampleValue Type
redis>	
  zadd	
  users:byFollowers	
  51428544	
  
@kant	
  42872391	
  @einstein	
  #	
  etc.	
  ...
(integer)	
  5
redis>	
  zrevrange	
  users:byFollowers	
  0	
  2
1)	
  "@clesoleil"
2)	
  "@kant"
3)	
  "@einstein"
redis>	
  zrevrange	
  users:byFollowers	
  0	
  1	
  withscores
1)	
  "@clesoleil"
2)	
  "52811148"
3)	
  "@kant"
4)	
  "51428544"
redis>	
  zrevrank	
  users:byFollowers	
  @kant
(integer)	
  1
redis>	
  zscore	
  users:byFollowers	
  @kant
"51428544"
zadd	
  zcard	
  zcount	
  zincrby	
  zinterstore	
  zlexcount	
  zrange	
  zrangebylex	
  zrangebyscore	
  zrank	
  zrem	
  
zremrangebylex	
  zremrangebyrank	
  zremrangebyscore	
  zrevrange	
  zrevrangebyscore	
  zrevrank	
  zscore	
  
zunionstore	
  zscan
users:byFollowers
Keys ExampleValue Type
redis>	
  zadd	
  users:byFollowers	
  51428544	
  
@kant	
  42872391	
  @einstein	
  #	
  etc.	
  ...
(integer)	
  5
redis>	
  zrevrange	
  users:byFollowers	
  0	
  2
1)	
  "@clesoleil"
2)	
  "@kant"
3)	
  "@einstein"
redis>	
  zrevrange	
  users:byFollowers	
  0	
  1	
  withscores
1)	
  "@clesoleil"
2)	
  "52811148"
3)	
  "@kant"
4)	
  "51428544"
redis>	
  zrevrank	
  users:byFollowers	
  @kant
(integer)	
  1
redis>	
  zscore	
  users:byFollowers	
  @kant
"51428544"
zadd	
  zcard	
  zcount	
  zincrby	
  zinterstore	
  zlexcount	
  zrange	
  zrangebylex	
  zrangebyscore	
  zrank	
  zrem	
  
zremrangebylex	
  zremrangebyrank	
  zremrangebyscore	
  zrevrange	
  zrevrangebyscore	
  zrevrank	
  zscore	
  
zunionstore	
  zscan
users:byFollowers field score
@echouard 41359356
@tesla 41770322
@einstein 42872391
@kant 51428544
@clesoleil 52811148
Sorted Set
Who is using Redis?
http://bit.ly/1f0GkWi
http://bit.ly/1fp4ept
http://bit.ly/1f0Gq06
http://bit.ly/1fp4l4t
http://bit.ly/1f0GDjW
http://bit.ly/1fp4qVJ
http://bit.ly/1f0GWez
http://bit.ly/XX0yHy
http://bit.ly/1f0H11U
http://bit.ly/1bGQqJf
Who is using Redis?
http://www.xdata.me/?p=301
220.000.000.000 commands per day
500.000.000.000 reads per day
50.000.000.000 writes per day,
500+ servers
2000+ Redis instances!
Why am I talking
about Redis ?
BringrCofounder & CTO of
“ Create value for your business on Social Media,
from discussion to conversion ”
Professor @EPSI_Nantes & @UnivNantes on JavaScript (RIA/NodeJS) and NoSQL databases
bringr.net
“ Administrate everything, monitor in real-time.
Visualizing and editing Redis data-structures has never been so simple. ”
Founder of Redsmin redsmin.com
Editor of @RedisWeekly
“ A free, once–weekly e-mail round-up of Redis news, articles, tools and libraries. ”
redisweekly.com
Questions ?
@FGRibreau
bringr.net redsmin.com redisweekly.com
Thank you.

Más contenido relacionado

La actualidad más candente

Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup IntroductionGregory Boissinot
 
Kicking ass with redis
Kicking ass with redisKicking ass with redis
Kicking ass with redisDvir Volk
 
Redis and its many use cases
Redis and its many use casesRedis and its many use cases
Redis and its many use casesChristian Joudrey
 
Redis Introduction
Redis IntroductionRedis Introduction
Redis IntroductionAlex Su
 
What's new in Redis v3.2
What's new in Redis v3.2What's new in Redis v3.2
What's new in Redis v3.2Itamar Haber
 
Introduction to redis - version 2
Introduction to redis - version 2Introduction to redis - version 2
Introduction to redis - version 2Dvir Volk
 
Redis SoCraTes 2014
Redis SoCraTes 2014Redis SoCraTes 2014
Redis SoCraTes 2014steffenbauer
 
Everything you always wanted to know about Redis but were afraid to ask
Everything you always wanted to know about Redis but were afraid to askEverything you always wanted to know about Redis but were afraid to ask
Everything you always wanted to know about Redis but were afraid to askCarlos Abalde
 
Redis Use Patterns (DevconTLV June 2014)
Redis Use Patterns (DevconTLV June 2014)Redis Use Patterns (DevconTLV June 2014)
Redis Use Patterns (DevconTLV June 2014)Itamar Haber
 
Redis in Practice
Redis in PracticeRedis in Practice
Redis in PracticeNoah Davis
 
Redis Functions, Data Structures for Web Scale Apps
Redis Functions, Data Structures for Web Scale AppsRedis Functions, Data Structures for Web Scale Apps
Redis Functions, Data Structures for Web Scale AppsDave Nielsen
 
Extend Redis with Modules
Extend Redis with ModulesExtend Redis with Modules
Extend Redis with ModulesItamar Haber
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redisjimbojsb
 
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with ElasticsearchManaging Your Security Logs with Elasticsearch
Managing Your Security Logs with ElasticsearchVic Hargrave
 
Elasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveElasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveSematext Group, Inc.
 
Redis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamRedis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamCodemotion
 
Building the Right Platform Architecture for Hadoop
Building the Right Platform Architecture for HadoopBuilding the Right Platform Architecture for Hadoop
Building the Right Platform Architecture for HadoopAll Things Open
 

La actualidad más candente (20)

Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup Introduction
 
Kicking ass with redis
Kicking ass with redisKicking ass with redis
Kicking ass with redis
 
Redis and its many use cases
Redis and its many use casesRedis and its many use cases
Redis and its many use cases
 
Redis Introduction
Redis IntroductionRedis Introduction
Redis Introduction
 
What's new in Redis v3.2
What's new in Redis v3.2What's new in Redis v3.2
What's new in Redis v3.2
 
Introduction to redis - version 2
Introduction to redis - version 2Introduction to redis - version 2
Introduction to redis - version 2
 
Redis SoCraTes 2014
Redis SoCraTes 2014Redis SoCraTes 2014
Redis SoCraTes 2014
 
Redis 101
Redis 101Redis 101
Redis 101
 
Redis and it's data types
Redis and it's data typesRedis and it's data types
Redis and it's data types
 
Everything you always wanted to know about Redis but were afraid to ask
Everything you always wanted to know about Redis but were afraid to askEverything you always wanted to know about Redis but were afraid to ask
Everything you always wanted to know about Redis but were afraid to ask
 
Redis Use Patterns (DevconTLV June 2014)
Redis Use Patterns (DevconTLV June 2014)Redis Use Patterns (DevconTLV June 2014)
Redis Use Patterns (DevconTLV June 2014)
 
Redis in Practice
Redis in PracticeRedis in Practice
Redis in Practice
 
Redis Functions, Data Structures for Web Scale Apps
Redis Functions, Data Structures for Web Scale AppsRedis Functions, Data Structures for Web Scale Apps
Redis Functions, Data Structures for Web Scale Apps
 
Extend Redis with Modules
Extend Redis with ModulesExtend Redis with Modules
Extend Redis with Modules
 
RedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystemRedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystem
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
 
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with ElasticsearchManaging Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
 
Elasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveElasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep dive
 
Redis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamRedis - for duplicate detection on real time stream
Redis - for duplicate detection on real time stream
 
Building the Right Platform Architecture for Hadoop
Building the Right Platform Architecture for HadoopBuilding the Right Platform Architecture for Hadoop
Building the Right Platform Architecture for Hadoop
 

Destacado

New York REDIS Meetup Welcome Session
New York REDIS Meetup Welcome SessionNew York REDIS Meetup Welcome Session
New York REDIS Meetup Welcome SessionAleksandr Yampolskiy
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de RedisJEMLI Fathi
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Frank Denis
 

Destacado (8)

New York REDIS Meetup Welcome Session
New York REDIS Meetup Welcome SessionNew York REDIS Meetup Welcome Session
New York REDIS Meetup Welcome Session
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Redis keynote
Redis keynoteRedis keynote
Redis keynote
 
Symfonytn
SymfonytnSymfonytn
Symfonytn
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
 
Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2) Redis - (nosqlfr meetup #2)
Redis - (nosqlfr meetup #2)
 
REX Storm Redis
REX Storm RedisREX Storm Redis
REX Storm Redis
 

Similar a Introduction to Redis

Managing your black friday logs - Code Europe
Managing your black friday logs - Code EuropeManaging your black friday logs - Code Europe
Managing your black friday logs - Code EuropeDavid Pilato
 
Managing your Black Friday Logs NDC Oslo
Managing your  Black Friday Logs NDC OsloManaging your  Black Friday Logs NDC Oslo
Managing your Black Friday Logs NDC OsloDavid Pilato
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nltieleman
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nlbartzon
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devicesNikos Gkogkos
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapESUG
 
Redis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRedis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRoberto Franchini
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019Dave Nielsen
 
Cassandra drivers and libraries
Cassandra drivers and librariesCassandra drivers and libraries
Cassandra drivers and librariesDuyhai Doan
 
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...RootedCON
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Migrating To PostgreSQL
Migrating To PostgreSQLMigrating To PostgreSQL
Migrating To PostgreSQLGrant Fritchey
 
Digging for Android Kernel Bugs
Digging for Android Kernel BugsDigging for Android Kernel Bugs
Digging for Android Kernel BugsJiahong Fang
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community力 陈
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019Dave Nielsen
 

Similar a Introduction to Redis (20)

Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
 
Managing your black friday logs - Code Europe
Managing your black friday logs - Code EuropeManaging your black friday logs - Code Europe
Managing your black friday logs - Code Europe
 
Managing your Black Friday Logs NDC Oslo
Managing your  Black Friday Logs NDC OsloManaging your  Black Friday Logs NDC Oslo
Managing your Black Friday Logs NDC Oslo
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Live Memory Forensics on Android devices
Live Memory Forensics on Android devicesLive Memory Forensics on Android devices
Live Memory Forensics on Android devices
 
Gemtalk Systems Product Roadmap
Gemtalk Systems Product RoadmapGemtalk Systems Product Roadmap
Gemtalk Systems Product Roadmap
 
Redis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRedis for duplicate detection on real time stream
Redis for duplicate detection on real time stream
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
 
Fuzzing - Part 1
Fuzzing - Part 1Fuzzing - Part 1
Fuzzing - Part 1
 
Cassandra drivers and libraries
Cassandra drivers and librariesCassandra drivers and libraries
Cassandra drivers and libraries
 
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...
Sergi Álvarez + Roi Martín - radare2: From forensics to bindiffing [RootedCON...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Migrating To PostgreSQL
Migrating To PostgreSQLMigrating To PostgreSQL
Migrating To PostgreSQL
 
REDIS327
REDIS327REDIS327
REDIS327
 
Digging for Android Kernel Bugs
Digging for Android Kernel BugsDigging for Android Kernel Bugs
Digging for Android Kernel Bugs
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community
 
Git vs. Mercurial
Git vs. MercurialGit vs. Mercurial
Git vs. Mercurial
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019
 

Más de François-Guillaume Ribreau

REX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisREX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisFrançois-Guillaume Ribreau
 
⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?François-Guillaume Ribreau
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...François-Guillaume Ribreau
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!François-Guillaume Ribreau
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France François-Guillaume Ribreau
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...François-Guillaume Ribreau
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...François-Guillaume Ribreau
 
Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)François-Guillaume Ribreau
 
Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)François-Guillaume Ribreau
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsFrançois-Guillaume Ribreau
 
Les enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéLes enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéFrançois-Guillaume Ribreau
 
Continous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyContinous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyFrançois-Guillaume Ribreau
 

Más de François-Guillaume Ribreau (16)

REX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisREX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 mois
 
⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
 
Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)Implementing pattern-matching in JavaScript (full version)
Implementing pattern-matching in JavaScript (full version)
 
Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)Implementing pattern-matching in JavaScript (short version)
Implementing pattern-matching in JavaScript (short version)
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startups
 
Development Principles & Philosophy
Development Principles & PhilosophyDevelopment Principles & Philosophy
Development Principles & Philosophy
 
Les enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre sociétéLes enjeux de l'information et de l'algorithmique dans notre société
Les enjeux de l'information et de l'algorithmique dans notre société
 
How I monitor SaaS products
How I monitor SaaS productsHow I monitor SaaS products
How I monitor SaaS products
 
Continous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophyContinous Integration of (JS) projects & check-build philosophy
Continous Integration of (JS) projects & check-build philosophy
 
Approfondissement CSS3
Approfondissement CSS3Approfondissement CSS3
Approfondissement CSS3
 
Découverte HTML5/CSS3
Découverte HTML5/CSS3Découverte HTML5/CSS3
Découverte HTML5/CSS3
 

Último

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Último (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Introduction to Redis

  • 1. Introduction HumanTalks Nantes - 13 Mai 2014 Francois-Guillaume Ribreau
  • 2. REmote DIctionary Server (Redis) is created by @antirez, written in C, released in 2009, BSD licensed, was supported by VMWare and now Pivotal. Redis is an open source, networked, single threaded, in- memory, advanced key-value store with optional durability. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
  • 3. Key features ‣ Atomic operations ‣ Lua Scripting ‣ Pub/Sub ‣ Transactions ‣ Master/Slave replication ‣ Cluster (with automatic sharding)* ‣ Automatic failover (Redis Sentinel) ‣ Append Only File (AOF) persistence ‣ Snapshot (RDB file) persistence
  • 4. Key features ‣ Atomic operations ‣ Lua Scripting ‣ Pub/Sub ‣ Transactions ‣ Master/Slave replication ‣ Cluster (with automatic sharding)* ‣ Automatic failover (Redis Sentinel) ‣ Append Only File (AOF) persistence ‣ Snapshot (RDB file) persistence * currently in 3.0.0 beta-3
  • 5. Key advantages ‣ Blazing* Fast ‣ Robust ‣ Easy to setup, use and maintain ‣ Extensible with LUA scripting
  • 6. Key advantages ‣ Blazing* Fast ‣ Robust ‣ Easy to setup, use and maintain ‣ Extensible with LUA scripting * as the cool kids say these days.
  • 7. Key disadvantages ‣ Persistence consumes lot of I/O when using RDB ‣ all your data must fit in memory
  • 8. Key disadvantages all your data must fit in memory
  • 10. all your data must fit in memory
  • 11. What for ? http://bit.ly/138IoSr ‣ Cache out-of-process ‣ Duplicate detector ‣ LIFO/FIFO Queues*, Priority Queue ‣ Distributed HashMap ‣ UID Generator ‣ Pub/Sub ‣ Real-time analytics & chat apps ‣ Counting Stuff ‣ Metrics DB ‣ Implement expires on items ‣ Leaderboards (game high scores) ‣ Geolocation lookup ‣ API throttling (rate-limits) ‣ Autocomplete ‣ Social activity feed ‣ ... http://bit.ly/1qiVDjb
  • 14. cache:/ Keys users:mostfollowed users:1:followers users:1:tweets users:1 <!DOCTYPE  html><html><head><meta  ...   charset='utf-­‐8'  /> Example field member username fgribreau followers 2204 89 8 55 5 34 13 21 0 1 2 3 hello... hey!.. @Crea... New  pro... field score @ladygaga 41359356 @youtube 41770322 @barackobama 42872391 @justinbieber 51428544 @katyperry 52811148 Value Type String Hash Set* List Sorted Set * Since 2.8.9, Redis supports a new type: HyperLogLog (an memory efficient way to store and count unique elements in a set)
  • 15. $  redis-­‐cli redis>  get  talk:414:description (nil) redis>  set  talk:414:description  "Je  propose  ce  sujet  suite  à  une  suggestion  de  Quentin." OK redis>  get  talk:414:description "Je  propose  ce  sujet  suite  xc3xa0  une  suggestion  de  Quentin." redis>  expire  talk:414:description  5 (integer)  1 #  then  after  5  seconds redis>  get  talk:414:description (nil) redis>  getrange  talk:414:description  47  53 "Quentin" redis>  incr  talk:414:views (integer)  1 redis>  incrby  talk:414:views  10 "11" cache:/ Keys <!DOCTYPE  html><html><head><meta  ...   charset='utf-­‐8'  /> ExampleValue Type String append  bitcount  bitop  bitpos  decr  decrby  get  getbit  getrange  getset  incr  incrby  incrbyfloat  mget   mset  msetnx  psetex  set  setbit  setex  setnx  setrange  strlen http://bit.ly/1kRJn0N
  • 16. Keys users:1 Example field member username fgribreau followers 2204 Value Type Hash redis>  hmset  users:1  username  fgribreau  followers  2204 OK redis>  hgetall  users:1 1)  "username" 2)  "fgribreau" 3)  "followers" 4)  "2204" redis>  hincrby  users:1  followers  1 (integer)  2205 redis>  hget  users:1  followers "2205" redis>  hset  users:1  username  humantalks (integer)  0 hdel  hexists  hget  hgetall  hincrby  hincrbyfloat  hkeys  hlen  hmget  hmset  hset  hsetnx  hvals  hscan
  • 17. Keys ExampleValue Type redis>  sadd  users:1:followers  89  8  55  5  34  13  21 (integer)  7 redis>  sadd  users:2:followers  0  1  1  2  3  5  8  13  21 (integer)  8 redis>  sinter  users:1:followers  users:2:followers 1)  "5" 2)  "8" 3)  "13" 4)  "21" redis>  scard  users:1:followers (integer)  7 sadd  scard  sdiff  sdiffstore  sinter  sinterstore  sismember  smembers  smove  spop  srandmember  srem   sunion  sunionstore  sscan users:1:followers
  • 18. Keys ExampleValue Type redis>  sadd  users:1:followers  89  8  55  5  34  13  21 (integer)  7 redis>  sadd  users:2:followers  0  1  1  2  3  5  8  13  21 (integer)  8 redis>  sinter  users:1:followers  users:2:followers 1)  "5" 2)  "8" 3)  "13" 4)  "21" redis>  scard  users:1:followers (integer)  7 sadd  scard  sdiff  sdiffstore  sinter  sinterstore  sismember  smembers  smove  spop  srandmember  srem   sunion  sunionstore  sscan users:1:followers 89 8 55 5 34 13 21Set
  • 19. Keys ExampleValue Type redis>  rpush  users:1:tweets  hello... (integer)  1 redis>  rpush  users:1:tweets  hey!... (integer)  2 redis>  lindex  users:1:tweets  1 "hey!..." blpop  brpop  brpoplpush  lindex  linsert  llen  lpop  lpush  lpushx  lrange  lrem  lset  ltrim  rpop  rpoplpush   rpush  rpushx users:1:tweets #  Shell  1 redis>  brpop  queue  0 #  blocking  until 1)  "queue" 2)  "my_task" (14.27s) #  Shell  2 redis>  lpush  queue  my_task (integer)  1
  • 20. Keys ExampleValue Type redis>  rpush  users:1:tweets  hello... (integer)  1 redis>  rpush  users:1:tweets  hey!... (integer)  2 redis>  lindex  users:1:tweets  1 "hey!..." blpop  brpop  brpoplpush  lindex  linsert  llen  lpop  lpush  lpushx  lrange  lrem  lset  ltrim  rpop  rpoplpush   rpush  rpushx users:1:tweets 0 1 2 3 hello... hey!... @Crea... New  pro... List #  Shell  1 redis>  brpop  queue  0 #  blocking  until 1)  "queue" 2)  "my_task" (14.27s) #  Shell  2 redis>  lpush  queue  my_task (integer)  1
  • 21. Keys ExampleValue Type redis>  zadd  users:byFollowers  51428544   @kant  42872391  @einstein  #  etc.  ... (integer)  5 redis>  zrevrange  users:byFollowers  0  2 1)  "@clesoleil" 2)  "@kant" 3)  "@einstein" redis>  zrevrange  users:byFollowers  0  1  withscores 1)  "@clesoleil" 2)  "52811148" 3)  "@kant" 4)  "51428544" redis>  zrevrank  users:byFollowers  @kant (integer)  1 redis>  zscore  users:byFollowers  @kant "51428544" zadd  zcard  zcount  zincrby  zinterstore  zlexcount  zrange  zrangebylex  zrangebyscore  zrank  zrem   zremrangebylex  zremrangebyrank  zremrangebyscore  zrevrange  zrevrangebyscore  zrevrank  zscore   zunionstore  zscan users:byFollowers
  • 22. Keys ExampleValue Type redis>  zadd  users:byFollowers  51428544   @kant  42872391  @einstein  #  etc.  ... (integer)  5 redis>  zrevrange  users:byFollowers  0  2 1)  "@clesoleil" 2)  "@kant" 3)  "@einstein" redis>  zrevrange  users:byFollowers  0  1  withscores 1)  "@clesoleil" 2)  "52811148" 3)  "@kant" 4)  "51428544" redis>  zrevrank  users:byFollowers  @kant (integer)  1 redis>  zscore  users:byFollowers  @kant "51428544" zadd  zcard  zcount  zincrby  zinterstore  zlexcount  zrange  zrangebylex  zrangebyscore  zrank  zrem   zremrangebylex  zremrangebyrank  zremrangebyscore  zrevrange  zrevrangebyscore  zrevrank  zscore   zunionstore  zscan users:byFollowers field score @echouard 41359356 @tesla 41770322 @einstein 42872391 @kant 51428544 @clesoleil 52811148 Sorted Set
  • 23. Who is using Redis? http://bit.ly/1f0GkWi http://bit.ly/1fp4ept http://bit.ly/1f0Gq06 http://bit.ly/1fp4l4t http://bit.ly/1f0GDjW http://bit.ly/1fp4qVJ http://bit.ly/1f0GWez http://bit.ly/XX0yHy http://bit.ly/1f0H11U http://bit.ly/1bGQqJf
  • 24. Who is using Redis? http://www.xdata.me/?p=301 220.000.000.000 commands per day 500.000.000.000 reads per day 50.000.000.000 writes per day, 500+ servers 2000+ Redis instances!
  • 25. Why am I talking about Redis ?
  • 26. BringrCofounder & CTO of “ Create value for your business on Social Media, from discussion to conversion ” Professor @EPSI_Nantes & @UnivNantes on JavaScript (RIA/NodeJS) and NoSQL databases bringr.net
  • 27. “ Administrate everything, monitor in real-time. Visualizing and editing Redis data-structures has never been so simple. ” Founder of Redsmin redsmin.com
  • 28. Editor of @RedisWeekly “ A free, once–weekly e-mail round-up of Redis news, articles, tools and libraries. ” redisweekly.com
  • 29. Questions ? @FGRibreau bringr.net redsmin.com redisweekly.com Thank you.