TIL/Node.js

Redis

Art Rudy
728x90
반응형

Redis?

Remote Dictionary Server의 약어인 Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠르고 오픈 소스, 인 메모리 키-값 데이터 스토어이다. Redis는 캐싱, 세션 관리, 게임, 리더 보드, 실시간 분석, 지형 공간, 라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용된다.

 

설치

https://github.com/tporadowski/redis/releases -> 최신 버전 설치

다음 명령을 사용해 redis를 설치한다.

$ npm install ioredis

 

기본 사용 방법

const Redis = require("ioredis");
const redis = new Redis(); // uses defaults unless given configuration object 
// ioredis supports all Redis commands: 
redis.set("Key", "Value"); // returns promise which resolves to string, "OK" 
// the format is: redis[SOME_REDIS_COMMAND_IN_LOWERCASE](ARGUMENTS_ARE_JOINED_INTO_COMMAND_STRING) 
// the js: ` redis.set("mykey", "Hello") ` is equivalent to the cli: ` redis> SET mykey "Hello" ` 
// ioredis supports the node.js callback style 
redis.get("Key", function (err, result) {
    if (err) {
        console.error(err);
    } else {
        console.log(result); // Promise resolves to "Value" 
    }
});
// Or ioredis returns a promise if the last argument isn't a function 
redis.get("Key").then(function (result) {
    console.log(result); // Prints "Value" 
});
// Most responses are strings, or arrays of strings 
redis.zadd("sortedSet", 1, "one", 2, "dos", 4, "quatro", 3, "three");
redis.zrange("sortedSet", 0, 2, "WITHSCORES").then((res) => console.log(res)); 
// Promise resolves to ["one", "1", "dos", "2", "three", "3"] as if the command was ` redis> ZRANGE sortedSet 0 2 WITHSCORES ` 
// All arguments are passed directly to the redis server: 
redis.set("key", 100, "EX", 10);

 

Redis 연결하기

new Redis(); // Connect to 127.0.0.1:6379 
new Redis(6380); // 127.0.0.1:6380 
new Redis(6379, "192.168.1.1"); // 192.168.1.1:6379 
new Redis("/tmp/redis.sock");
new Redis({
    port: 6379, // Redis port 
    host: "127.0.0.1", // Redis host 
    family: 4, // 4 (IPv4) or 6 (IPv6) 
    password: "auth",
    db: 0,
});

 

redis.windows-service.conf 설정

# redis 접속 암호

requirepass [비밀번호]

# redis db 파일 이름 (RDB 방식)

dbfilename [name.rdb] ex)redis-db.rdb

# RDB 파일 압축 여부

rdbcompression [yes or no]

# RDB 파일 체크섬 확인 여부

rdbchecksum [yes or no]

# RDB 파일 저장 장소

dir [URL]

 

728x90
반응형

'TIL > Node.js' 카테고리의 다른 글

Cluster  (0) 2021.07.21
Sass  (0) 2021.07.21
Babel  (0) 2021.07.21
Tedious  (0) 2021.07.21
Express  (0) 2021.07.21