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 |