Redis 설정하기
require('dotenv').config();
const { createClient } = require('redis');
console.log(process.env.REDIS_USERNAME);
const redisClient = createClient({
url: `redis://${process.env.REDIS_USERNAME}:${process.env.REDIS_PASSWORD}@${process.env.REDIS_HOST}:${process.env.REDIS_PORT}/0`,
legacyMode: true, // 반드시 설정 !!
});
redisClient.on('error', err => {
console.error('Redis Client Error', err);
});
(async () => {
await redisClient.connect();
console.log('Redis connected!');
})()
기본 CRUD 중 값을 가져올 때, 콜백함수 사용
// lPush : 왼쪽에서 배열에 밀어 넣기
// rPush : 오른쪽에서 배열에 밀어 넣기
await redisClient.lPush('page', `{ id: 3, content: 'asdf' }`);
//값을 받아올때, 콜백으로만 받아와짐
// reply 값으로 객체를 스트링 타입으로 받으므로, JSON.parse() 이용
await redisClient.lLen('page', function (err, reply) {
console.log(reply);
});
let data;
await redisClient.lRange('page', 0, -1, function (err, reply) {
console.log(reply);
data = JSON.parse(reply);
});
redis JSON 라이브러리 사용 => return 값으로 JSON 객체를 그대로 받음
await redisClient.json.set('noderedis:jsondata', '$', {
name: 'Roberta McDonald',
pets: [
{
name: 'Rex',
species: 'dog',
age: 3,
isMammal: true,
},
{
name: 'Goldie',
species: 'fish',
age: 2,
isMammal: false,
},
],
});
const results = await redisClient.json.get('noderedis:jsondata', {
path: ['.pets[1].name', '.pets[1].age'],
});
'항해99_10기 > 105일의 TIL & WIL' 카테고리의 다른 글
[7주차] [20221229] 1주일 notion clone 챌린지 회고 (0) | 2022.12.30 |
---|---|
[7주차] [20221228] queue 자료구조를 이용하여 autoSave 구현 (0) | 2022.12.29 |
[7주차] [20221226] Notion clone 프로젝트 DB 설계 (1) | 2022.12.27 |
[WIL] [6주차] 2022.12.19 ~ 2022.12.25 회고 (feat. 미니프로젝트 완료 후기) (0) | 2022.12.26 |
[6주차] [221222] 미니프로젝트 회고 (0) | 2022.12.22 |