-
JavaScript) Express에 Redis로 Cache 적용해보기Programing Language/JavaScript 2021. 11. 14. 23:01728x90반응형
사용자들이 공통적으로 자주 요청하게 되는 end-point의 데이터는 미리 Cache해놓으면, 다음번에는 더 빠르게 데이터를 응답해줄 수 있습니다.
그럼 Express에서는 Caching을 어떻게 진행할까요?
Redis를 사용하여 진행합니다.Redis?
Redis는 Remote Dictionary Server의 약자로, "key-value" 구조의 데이터를 저장하고 관리하는 비관계형 데이터베이스 관리 시스템입니다.
메모리에서 데이터를 처리하기 때문에 속도가 상당히 빠릅니다.
그래서, 이번 포스트에서는 Redis에 데이터를 저장하고 캐싱해보겠습니다.
Redis 설정하기
- redis 설치하기
- 이 부분은 인터넷 검색으로 하실 수 있으니 대체.
- redis 패키지 설치
yarn add redis 혹은 npm install redis - caching을 위한 미들웨어 및 유틸리티 함수 작성
const redis = require('redis'); const redisClient = redis.createClient(process.env.REDIS_PORT); // redis에 데이터 저장 const set = (key, value) => { redisClient.set(key, JSON.stringify(value)); }; // 저장 된 데이터를 redis에서 가져오는 미들웨어 const get = (req, res, next) => { // End-Point의 url을 key로 설정 let key = req.originalUrl; redisClient.get(key, (error, data) => { if (error) { res.status(400).send({ ok: false, message: error, }); } if (data !== null) { // 데이터가 cache되어 있으면, parsing하여 response res.status(200).send({ ok: true, data: JSON.parse(data), }); } else next(); }); }; module.exports = { set, get, };
API에 적용하기
- 사용 할 end-point의 router에 미들웨어 추가
const express = require('express'); const { getItems } = require('./getItemList'); const { get } = require('../../utils/cache'); const router = express.Router(); // cache되어 있으면 get 미들웨어에서 데이터 반환 router.get('/', get, getItems); module.exports = router;
- router의 콜백함수에 set 적용하기
... const { set } = require('../../utils/cache'); const getItems = async (req, res) => { ... if (items.length) { // 데이터 caching하고 response set(req.originalUrl, items); res.status(200).send({ ok: true, data: items, }); } else { res.status(404).send({ ok: false, message: 'No more pages', }); } };
728x90반응형'Programing Language > JavaScript' 카테고리의 다른 글
Javascript) 전화번호 문자열에 하이픈 넣기 (0) 2021.12.06 Javascript) Array에서 value 값 제거하기(remove) (0) 2021.11.25 JavaScript)이메일 정규표현식 구현하기 (0) 2021.11.10 Javascript) 웹 과 각 네이티브(Android,iOS) 통신하기(Bridge) (0) 2021.10.19 JavaScript) 브라우저 창 새로고침 이후에도 스크롤 유지하기 (0) 2021.10.05 - redis 설치하기