티스토리 뷰

Server

Node에 Redis 연결하기

니용 2021. 6. 15. 10:02
반응형

Redis는 캐시메모리에 저장되는 DB와 같은 자료구조로, 접근 속도가 많이 빠르지만 휘발성이기 때문에 메모리가 날라가게 되면 데이터도 같이 날라가는 특징을 가지고 있습니다. 노드에서 레디스를 사용하기 위해 npm i redis 명령어로 Redis를 설치합니다.

$ npm i redis
const redis = require('redis')
const client = redis.createClient()

설치가 되었으면 Redis의 정보를 커스텀할 수 있습니다. 이 정보는 나중에 .yml 파일 또는 .properties 파일에 보관하여 사용하는 방법이 더 좋습니다.

const redis = require('redis')

const redisInfo = {
   host : '127.0.0.1',
   port : 6379,
   db : 0, // Redis에서 사용하는 DB 번호
   password : '1234asdf'
}

const client = redis.createClient(redisInfo)

이제 화면과 연결을 해볼 차례입니다. get에 대한 샘플 소스는 아래에 있습니다. 

// get
router.get('/', (req, res, next) => {
   let username = ''
   client.get('username', (err, result) => {
       console.log(result)
       username = result
   })
   res.json({ username })
})

set에 대한 샘플 소스입니다.

// set
router.post('/set', (req, res, next) => {
   let params = req.params // { "username": 'nyong' }
   let username = ''
   client.set('username', params[username])
   client.get('username', (err, result) => {
      username = result
      console.log(result)
   })
   
   res.json({ username })
})

delete에 대한 샘플 소스입니다. 

// delete
router.delete('/del/:key', (req, res, next) => {
   let params = req.params // { "key": 'username' }
   client.delete(params.key)
   res.send(req.params)
})

그리고 key의 존재 유무를 파악하는 것과 키값을 바꾸는 명령어입니다.

// exist
router.get('/exist/:key', (req, res, next) => {
   let params = req.params // { key: 'username' }
   client.exists(params.key) // true: 1 , false: 0
   res.send(req.params)
})

// rename
router.put('/rename/:key', (req, res, next) => {

   // from에서 to로 변경
   let params = req.params // { from: 'username', to : 'name'}
   
   // username이라는 키값이 있다면 그 값을 name으로 바꿈
   client.rename(params.from, param.to) 
   res.status(201)
})

 

Redis에서 사용하는 자료구조여기 글에 있습니다!

반응형
댓글
공지사항