Redis and its many use cases
-
Upload
christian-joudrey -
Category
Technology
-
view
8.029 -
download
1
description
Transcript of Redis and its many use cases
![Page 1: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/1.jpg)
Redis and its many usesChristian Joudrey - @cjoudrey
![Page 2: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/2.jpg)
Redis is an open source, advanced key-value store.
‘‘
’’
![Page 3: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/3.jpg)
Key-value what?!
![Page 4: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/4.jpg)
SET name "fido"
GET name
=> "fido"
![Page 5: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/5.jpg)
EXPIRE name 120
![Page 6: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/6.jpg)
So it's like memcached?
![Page 7: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/7.jpg)
Atomic operations
![Page 8: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/8.jpg)
SET count 0
INCR count
=> 1
![Page 9: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/9.jpg)
Ordered lists
![Page 10: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/10.jpg)
LPUSH friends "Tom"
LPUSH friends "Sam"
LLEN friends
=> 2
![Page 11: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/11.jpg)
LPUSH
TomSam
RPUSH
![Page 12: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/12.jpg)
LRANGE friends 0 0
=> ["Sam"]
LRANGE friends 0 -1
=> ["Sam", "Tom"]
![Page 13: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/13.jpg)
Sets, Hashes,Sorted Sets
![Page 14: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/14.jpg)
Save to disk
![Page 15: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/16.jpg)
What about node?!
![Page 17: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/17.jpg)
GitHubhttp://git.io/redis
... or via npm ...$ npm install redis
![Page 18: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/18.jpg)
Use case #1:
Caching
![Page 19: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/20.jpg)
Use case #2:
Session store
![Page 21: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/22.jpg)
Use case #3:
Pub/Sub
![Page 23: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/23.jpg)
ChatServer
ChatServer
LoadBalancer
![Page 24: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/24.jpg)
Use case #4:
Job Queue
![Page 25: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/25.jpg)
Image resize APIi.e.:
![Page 26: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/26.jpg)
NodeServer
GET /image_resize?url=http://...
1) Download image2) Resize image with GD
![Page 27: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/27.jpg)
NodeServer
GET /image_resize?url=http://...
JobQueue
orkerResize
Workers
1) Download image2) Resize image with GD
![Page 28: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/28.jpg)
Kuehttps://github.com/learnboost/kue
![Page 29: Redis and its many use cases](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/29.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022051513/547dfec4b4af9faf158b552c/html5/thumbnails/30.jpg)
Questions? :)