Docker 및 NodeJS / Express와 함께 Redis 사용

https://unsplash.com/photos/EaB4Ml7C7fE?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink

이 기사에서는 로컬 머신에 DOCKER를 사용하여 REDIS 를 설치 하고 로컬에서 실행중인 노드 / expressJS 애플리케이션 내에서 도커 컨테이너 서비스에 액세스하는 단계를 살펴 보겠습니다 .

사전 요구 사항

Node Package Manager, Docker 와 같은 로컬 컴퓨터에 기본 설정이 있고 Javascript , NodeJS , Express , REDIS 및 Docker에 대한 공정한 이해가 있다고 가정합니다 .

의 시작하자

도커를 사용하여 REDIS를 설치하는 구성부터 시작하여 로컬 개발 환경에서의 사용으로 이동합니다.

DOCKER를 사용하여 REDIS 설치

이 단계를 수행하려면 터미널을 실행하고 다음 명령을 실행하십시오.

docker run -d --name <CONTAINER_NAME> -p 127.0.0.1:6379:6379 redis

  • d- 분리 모드에서 컨테이너를 실행합니다.
  • — name <CONATINER_NAME> — 컨테이너에 이름을 할당합니다.
  • p — 포트와 IP를 로컬 시스템에 매핑합니다. 이것은 로컬에서 서비스를 활성화하기위한 캐치입니다. 로컬 매핑없이 이미지를 생성하면이 정보에 액세스 할 수 없습니다. 6379 는 REDIS 의 기본 포트 입니다 .
  • redis — 다운로드 할 이미지의 이름입니다.
  • docker ps -a
    

    docker exec -it <CONTAINER_NAME|ID> sh
    

# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set customer_name "John Doe"
OK
127.0.0.1:6379> get customer_name
"John Doe"
127.0.0.1:6379> del customer_name
(integer) 1
127.0.0.1:6379> exit
# exit

REDIS 설치를 모두 설정 했으므로 계속해서 작은 ExpressJS 응용 프로그램을 만드십시오.

터미널로 이동하여 다음 명령을 실행하십시오.

npm init

npm i -P express
npm i -D nodemon

원하는 편집기에서 package.json 파일을 열고 스크립트 섹션 아래에 다음 명령을 추가합니다.

"dev": "nodemon server"

const express = require('express');
const PORT = 5001;
const app = express();
const router = express.Router();
app.use(express.json());
router.get('/', (req,res) => {
    res.status(200).json({
        message : "Sample Docker Redis Application"
    });
});
app.listen(PORT, () => {
    console.log(`Server running on PORT ${PORT}`);
});

다음으로 서버를 시작하십시오.

npm run dev

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 45
ETag: W/"2d-bO6czhAp6+qsrxSQWqx38pGjRvo"
Date: Thu, 15 Apr 2021 18:14:24 GMT
Connection: keep-alive
Keep-Alive: timeout=5
{"message":"Sample Docker Redis Application"}

REDIS에 액세스하려면 애플리케이션 내 에서 REDIS 클라이언트에 대한 액세스 권한이 필요합니다 .

터미널-> 앱 루트 폴더로 이동하십시오.

npm i -P redis

편집기에서 erver.js / index.js (기본) 파일 을 열고 액세스 활성화를 변경합니다.

const redis = require('redis');
const redisClient = redis.createClient(6379,'127.0.0.1');
redisClient.on('error', (err) => {
    console.log('Error occured while connecting or accessing redis server');
});
if(!redisClient.get('customer_name',redis.print)) {
    //create a new record
    redisClient.set('customer_name','John Doe', redis.print);
    console.log('Writing Property : customer_name');
} else {
    let val = redisClient.get('customer_name',redis.print);
    console.log(`Reading property : customer_name - ${val}`);
}

[nodemon] starting `node server.js`
Writing Property : customer_name
Server running on PORT 5001
Reply: null
Reply: OK

[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Writing Property : customer_name
Server running on PORT 5001
Reply: John Doe
Reply: OK

좋아, 그게 다야. 우리는 모두 로컬 애플리케이션 내에서 REDIS에 액세스 할 준비가되었습니다. 이것으로 지금이 기사를 마칩니다.

기사가 마음에 들면 자유롭게 공유하십시오.

@ 샘플 코드에 액세스https://github.com/cmgabriel/docker_redis_express

시간을내어 읽어 주셔서 감사합니다. Happy Coding!

Suggested posts

Node JS 인터뷰 질문(기초-고급) 파트 5

Node JS 인터뷰 질문(기초-고급) 파트 5

오늘 저는 Node JS 인터뷰 질문 시리즈를 계속하고 있습니다. 이 시리즈는 시작하기 전에 기본에서 고급까지 인터뷰에서 묻는 중요한 질문을 다루는 5개의 파트를 기반으로 합니다.

DevOps-1: PostgreSQL 데이터베이스로 Golang 애플리케이션을 도커화합니다.

DevOps-1: PostgreSQL 데이터베이스로 Golang 애플리케이션을 도커화합니다.

이 기사에서는 postgreSQL 데이터베이스를 사용하여 간단한 golang CRUD 애플리케이션을 도커화하려고 합니다. 먼저 애플리케이션을 만들어 봅시다.

Related posts

팟캐스트가 영향력 있는 이유는 무엇입니까?

팟캐스트가 영향력 있는 이유는 무엇입니까?

지난 주에 저는 PressGazette(영국 언론 뉴스 웹사이트)를 통해 발송된 보도 자료를 보았습니다. 이 기사는 Scandi 팟캐스트 호스팅 및 광고 회사인 Acast가 팟캐스팅에서 "아마도 가장 영향력 있는" 게시자 컨소시엄을 이끌 것이라고 발표했습니다.

미디어 재검토: McChesney의 다섯 가지 진실과 커뮤니케이션의 미래

오늘날의 초연결 세계에서 미디어 시스템은 여론을 형성하고 결과적으로 민주적 의사 결정에 중추적인 역할을 합니다. 의사소통의 정치경제학에 대한 심오한 분석에서 학자인 Robert McChesney는 기존의 통념에 도전하고 그가 미디어에 대한 "다섯 가지 진실"이라고 부르는 것을 제시합니다.

무한한 삶

당신이 자라면 세상은 있는 그대로이고 당신의 삶은 단지 세상 안에서 당신의 삶을 사는 것이며, 결코 당신의 생명을 위험에 빠뜨리지 않고, 정해진 길을 따르고 결국 죽고, 벽을 너무 세게 치세요.하지만 그것은 매우 제한된 삶입니다.

지구를 구하고 돈을 버는 방법

지구를 구하고 돈을 버는 방법

페트병, 유리병, 알루미늄캔, 그린에너지 패키지를 무심코 버린 적이 몇 번이나 되셨나요? 재활용에 대한 대가로 무언가를 얻을 수 있기를 몇 번이나 바랐습니까? 당신이 대부분의 사람들과 같다면 대답은 아마도 여러 번일 것입니다. 재활용은 종종 번거로움, 자질구레한 일 또는 즉각적이거나 실질적인 혜택을 가져오지 않는 의무로 간주됩니다.