+ All Categories
Home > Technology > Redis and its many use cases

Redis and its many use cases

Date post: 28-Nov-2014
Category:
Upload: christian-joudrey
View: 8,029 times
Download: 1 times
Share this document with a friend
Description:
Talk given at NodeMTL #5
30
Redis and its many uses Christian Joudrey - @cjoudrey
Transcript
Page 1: Redis and its many use cases

Redis and its many usesChristian Joudrey - @cjoudrey

Page 2: Redis and its many use cases

Redis is an open source, advanced key-value store.

‘‘

’’

Page 3: Redis and its many use cases

Key-value what?!

Page 4: Redis and its many use cases

SET name "fido"

GET name

=> "fido"

Page 5: Redis and its many use cases

EXPIRE name 120

Page 6: Redis and its many use cases

So it's like memcached?

Page 7: Redis and its many use cases

Atomic operations

Page 8: Redis and its many use cases

SET count 0

INCR count

=> 1

Page 9: Redis and its many use cases

Ordered lists

Page 10: Redis and its many use cases

LPUSH friends "Tom"

LPUSH friends "Sam"

LLEN friends

=> 2

Page 11: Redis and its many use cases

LPUSH

TomSam

RPUSH

Page 12: Redis and its many use cases

LRANGE friends 0 0

=> ["Sam"]

LRANGE friends 0 -1

=> ["Sam", "Tom"]

Page 13: Redis and its many use cases

Sets, Hashes,Sorted Sets

Page 14: Redis and its many use cases

Save to disk

Page 15: Redis and its many use cases

Download ithttp://redis.io/download

... and try it ...$ redis-cliredis> SET name "Chris"OKredis> GET name"Chris"

Page 16: Redis and its many use cases

What about node?!

Page 17: Redis and its many use cases

GitHubhttp://git.io/redis

... or via npm ...$ npm install redis

Page 18: Redis and its many use cases

Use case #1:

Caching

Page 19: Redis and its many use cases

var redis = require('redis'), client = redis.createClient();

function getSomeValue (callback) { client.get('someVal', function (err, val) { if (val) return callback(null, val); // Do call directly to Db // and cache result. });};

Page 20: Redis and its many use cases

Use case #2:

Session store

Page 21: Redis and its many use cases

var app = require('express').createServer();var RedisStore = require('connect-redis')(express);

app.use(express.session({ secret: 'keyboard cat', store: new RedisStore}));

app.get('/', function(req, res){ res.send('hello world');});

app.listen(3000);

http://expressjs.com/guide.html#session-support

Page 22: Redis and its many use cases

Use case #3:

Pub/Sub

Page 23: Redis and its many use cases

ChatServer

ChatServer

LoadBalancer

Page 24: Redis and its many use cases

Use case #4:

Job Queue

Page 25: Redis and its many use cases

Image resize APIi.e.:

Page 26: Redis and its many use cases

NodeServer

GET /image_resize?url=http://...

1) Download image2) Resize image with GD

Page 27: Redis and its many use cases

NodeServer

GET /image_resize?url=http://...

JobQueue

orkerResize

Workers

1) Download image2) Resize image with GD

Page 28: Redis and its many use cases

Kuehttps://github.com/learnboost/kue

Page 29: Redis and its many use cases

There's a lot more!11 Common Web Use Cases Solved in Redis

http://bit.ly/pgDmXn

Page 30: Redis and its many use cases

Questions? :)


Recommended