DATABASE

[ DATABASE ] - node.js에서 redis 사용

algml0703 2022. 6. 2. 11:36
반응형

redis 설치

2022.06.02 - [DATABASE] - [ DATABASE ] - Redis 사용

node.js에서 redis 사용하기 (with typescript)

npm install redis

1. redis 연결

import { createClient } from 'redis';

const pw = process.env.REDISPW as string;
// pw는 redis 설치후 설정한 password이다.

const client = createClient({
	password: pw
});

client.on('error',(err: any)=> {
	console.log('redis client error',err);
});

const client_connect = async () => {
	await client.connect();
    console.log('connected');
    return;
};

2. 사용법

모듈화하여 사용하였다.

// key-value 설정
const key_string = async (name: string) => {
    // await client.set('key', 'value');
    await client.set('name', name);
}
// value 안에 문자열을 추가해줌
const add_string_value = async (name: string) => {
    // await client.append('key', 'value');
    await client.append('name', name);
}

const get_key_string = async (name: string) => {
    // await client.get('key')
    const value = await client.get(name);
    console.log(value)
    return value;
}
// 서버를 껏다가 켜도 이전에 저장해둔 기록이 남아있다.
// 장바구니 기능 등에 이용하면 좋을 듯 하다.

// key-set 설정 set 형식
const key_set = (name: string, values: string[]) => {
    // await client.sAdd('key', 'value1', 'value2', 'value3', 'value4');
    values.map(async (value)=>{
        await client.sAdd(name, value)
    })
}

const get_key_set = async(name: string) => {
    // await client.sMembers('key')
    console.log(await client.sMembers(name))
    return await client.sMembers(name);
}

// key-hsah 형식 즉 객체 저장하는 설정
const key_hash = async () => {
    await client.hSet('customers', 'number', '1');
    await client.hSet('customers', 'info', 'man');
};

const get_key_hash = async () => {
    const value = await client.hGetAll('customers');
    console.log(value)
    return value;
}
const get_key_hash_value = async () => {
    const value = await client.hVals('customers');
    console.log(value);
    return value;
}

// multi
const use_multi = async () => {
    const value = await client.set('another-key', 'another-value');
    const [setKeyReply, otherKeyValue ] = await client
    .multi()
    .set('key','value')
    .get('another-key')
    .exec();
    console.log(setKeyReply);
    console.log(otherKeyValue);
}


const disconnecting = async () => {
    await client.disconnect()
    // await clinet.quit()
    console.log('disconnected');
    return 
};

export { client_connect, 
         key_string, 
         add_string_value,
         get_key_string,
         key_set,
         get_key_set,
         key_hash,
         get_key_hash,
         get_key_hash_value,
         use_multi,
         disconnecting
}

출처

반응형