Backend(Framework)/Cache / / 2023. 10. 22. 11:55

2. Redis 연결

1. Java

  • Maven project 생성
  • Dependency 추가
<dependencies>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>4.4.3</version>
    </dependency>
  </dependencies>
  • Java 코드
import redis.clients.jedis.Jedis;
public class RedisMain {
    public static void main(String[] args) {
        // 연결, Redis(Dragonfly) 서버는 bind address 설정이 "0.0.0.0" 으로 되어 있어서 외부에서 접근 가능
        Jedis redisClient = new Jedis("172.24.194.58", 6379);

        // 인증
        redisClient.auth("mypass");

        // 키값 저장
        redisClient.set("key_1", "value_1");

        // 키값 조회
        System.out.println(redisClient.keys("*"));
    }
}

2. Python

  • 프로젝트 디렉토리 생성
  • 가상환경 생성
  • 가상환경에 Dependency 추가
    pip install redis
  • Python 코드
# pip install redis
import redis
rd = redis.StrictRedis(host='172.24.194.58', port=6379, password='mypass', db=0)
rd.set('key_2', 'value_2')
print(rd.keys('*'))

3. TypeScript + Node

  • 프로젝트 디렉토리 생성
  • Dependency 추가
    npm init -y // package.json 생성
    npm install typescript ts-node ts-node-dev @types/node -D // 타입스크립트 지원
    npm install redis // redis 클라이언트 설치
  • package.json
{
  "name": "ts_api_auth",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc",
    "dev": "ts-node-dev --respawn ./src/index.ts",
    "start": "ts-node ./src/index.ts"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^20.8.7",
    "ts-node": "^10.9.1",
    "ts-node-dev": "^2.0.0",
    "typescript": "^5.2.2"
  },
  "dependencies": {
    "redis": "^4.6.10"
  }
}

  • tsconfig.json 추가
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "dist",
    "rootDir": "src",
    "strict": true,
    "sourceMap": true,
    "moduleResolution": "node",
    "esModuleInterop": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules"]
}
  • index.js 추가
import { createClient } from 'redis';

const client = createClient({
    username: 'default', // use your Redis user. More info https://redis.io/docs/management/security/acl/
    password: 'mypass', // use your password here
    socket: {
        host: '172.24.194.58',
        port: 6379
    }
});

client.on('error', err => console.log('Redis Client Error', err));

client.connect().then(r => console.log('Redis Client Connected', r));
client.set('key_3', 'value_3').then(r => console.log('Redis Client Set', r));
const values = client.keys("*");

console.log('values', values.then((res) => {
    console.log('res', res);
}));
  • 결과

다음에는 Redis 와 Drgonfly 의 성능이 진짜 25배 정도 나는지 비교해 보겠다.

'Backend(Framework) > Cache' 카테고리의 다른 글

3. Redis vs Dragonfly 성능 비교  (1) 2023.10.22
1. Redis 대안 dragonfly  (0) 2023.10.21
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유