빠르게 훝어 보는 node.js - redis 사용하기 (ioredis 클라이언트 버전)
조대협 (http://bcho.tistory.com)
지난 포스팅에서 http://bcho.tistory.com/1098 node.js에서 redis 사용에 있어서 node-redis 클라이언트를 사용했는데, 조금 더 리서치를 해보니, node.js의 redis 클라이언트는 지난번에 포스팅한 node-redis 클라이언트와 ioredis라는 클라이언트가 가장 많이 사용된다. ioredis 클라이언트가 조금 더 최근에 나온 클라이언트인데, https://github.com/luin/ioredis
Bluebird promise 지원, 트렌젝션 지원등 훨씬 더 많은 기능을 제공하고, 사용법이 node-redis와 거의 유사하여 마이그레이션이 어렵지 않다.
아래 코드는 어제 작성 했던 코드를 ioredis 버전으로 변경한것인데, 코드를 보면 변경 내용이 거의 없음을 확인할 수 있다.
mongodb, redis, mysql 지원 모듈을 살펴보다가 느낀건데, 대부분의 모듈들이 Promise를 지원하고, 특히 bluebird를 지원한다는 것이다.
얼마전에 Async framework에 대해서 Async,bluebird, Q등을 고려했는데, 지금까지 인사이트로 봐서는 bluebird를 표준 프레임웍으로 해서 개발하는게 답이 아닐까 한다.
// redis example var Redis = require('ioredis'); var redis = new Redis(6379,'127.0.0.1'); var JSON = require('JSON');
app.use(function(req,res,next){ req.redis = redis; next(); }); app.post('/profile',function(req,res,next){ req.accepts('application/json');
var key = req.body.name; var value = JSON.stringify(req.body);
req.redis.set(key,value,function(err,data){ if(err){ console.log(err); res.send("error "+err); return; } req.redis.expire(key,10); res.json(value); //console.log(value); }); }); app.get('/profile/:name',function(req,res,next){ var key = req.params.name;
req.redis.get(key,function(err,data){ if(err){ console.log(err); res.send("error "+err); return; }
var value = JSON.parse(data); res.json(value); }); });
// catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); });
|
'클라우드 컴퓨팅 & NoSQL > Vert.x & Node.js' 카테고리의 다른 글
쿠버네티스 리소스 (Resource)에 대해 (1) | 2018.06.24 |
---|---|
빠르게 훝어 보는 node.js - 구글 앱앤진에 node.js 애플리케이션을 배포해보자. (1) | 2016.07.26 |
빠르게 훝어 보는 node.js - redis 사용하기 (0) | 2016.03.29 |
빠르게 훝어 보는 node.js - heapdump를 이용한 메모리 누수 추적 (0) | 2016.03.29 |
빠르게 훝어 보는 node.js - mongoose 스키마와 유용한 기능 (0) | 2016.03.29 |