-
Node js/Redis Node(Javascript) 환경에서 Redis를 연결하고 사용하기.DEV/node js 2024. 8. 29. 17:41
결론부터 말씀 드리면... (코드만 보실 분은 해당 코드 참조, 본문은 아래로 이동)
//////////// // 1. 연결 // //////////// const redis = require('redis'); const client = redis.createClient(); client.on('error', (error) => { console.log('Redis error : ', error); }); client.on('connect', () => { console.log("Redis connected") }); client.connect(); //////////// // 2. SET // //////////// // >> SET(key, value) await client.set('data', data); //////////// // 2. GET // //////////// // >> GET(key) const data = await client.get('date');
오늘은 Node에서 Redis를 연결하고 간단하게 GET/SET을 사용하는 방법을 알아보자.
만약 설치를 하지 않았다면 하단 링크 또는 공식 문서를 참고하여 설치하자.
https://seokbong.tistory.com/298
1. client connect
본인은 Node로 서버를 구성하고 서버에서 지속적으로 데이터를 업데이트 치는 구성을 생각하였다.
그래서 따로 client를 connect 하고 해당 client를 필요한 곳에서 불러다 사용하고자 한다.
우선 client를 연결하는 파일을 하나 만들어주자.
에러 핸들링은 각자 필요에 맞게 수정하도록 하자.
client.js
const redis = require('redis'); // Redis client 생성 const client = redis.createClient(); /********* * Redis * *********/ client.on('error', (error) => { console.log('Redis error : ', error); }); client.on('connect', () => { console.log("Redis connected") }); // Redis 연결 client.connect(); module.exports = client;
2. client set
그럼 데이터를 저장하는 방법에 대해 살펴보자.
예시를 위해 5초마다 미 달러 기준으로 환율을 불러와 저장하는 코드를 작성하였다.
loop.js
const client = require('./client'); // API 호출 const putRedis = async () => { try { const target = 'https://latest.currency-api.pages.dev/v1/currencies/usd.json'; const response = await fetch(target); if (!response.ok) { throw new Error('network Error'); } // API를 통해 불러온 값 const data = await response.json(); // redis client에 data를 저장(set) await client.set('date', data.date); await client.set('krw', data.usd.krw); } catch (error) { console.log('putRedis error : ', error); } } setInterval(putRedis, 5000);
3. client get
이번에는 저장된 데이터를 불러와 사용해보자.
Node에서 GET 요청받았을 때 client를 통해 데이터를 불러와 reponse 해주는 예시 코드를 작성하였다.
serving.js
const client = require('../redis/client'); const express = require('express'); const router = express.Router(); router.get('/', async function(req, res, next) { try { // redis client를 통해 저장된 'data'와 'krw' 값을 불러옴 const data = await client.get('date'); const krw = await client.get('krw'); const statistics = { connecting: data, waiting: krw } console.log("statistics : ", statistics); // 응답 res.status(200).json({ status: 200, body: statistics }); } catch (error) { next(error); } }); router.use((err, req, res, next) => { res.status(500).json({ status: 500, body: { message: err.message }, }); }) module.exports = router;
ref
https://redis.io/docs/latest/develop/connect/clients/nodejs/
'DEV > node js' 카테고리의 다른 글
Node js "나만쓸거야" (스타터팩 간단 흐름도 추가) (0) 2024.10.10 Linux/Ubuntu Node js 노드 설치, 최신 버전 설치하기 (0) 2024.03.11 PM2 글로벌 설치 및 사용법 (0) 2024.03.06 dotenv undefined 문제 해결 방법 (0) 2024.03.04 Node js 텔레그램 봇(Telegram bot) 시작하기 (0) 2023.06.28