Skip to content

Commit

Permalink
feat : redis 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
cowboysj committed Nov 23, 2024
1 parent 4d7709c commit c6ad9c1
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 1 deletion.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "jakarta.persistence:jakarta.persistence-api:${jakartaPersistenceVersion}"
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:${springdocVersion}"
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// QueryDSL
implementation "com.querydsl:querydsl-jpa:${querydslVersion}:jakarta"
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/gigedi/dev/infra/config/PropertiesConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
import gigedi.dev.infra.config.oauth.DiscordProperties;
import gigedi.dev.infra.config.oauth.FigmaProperties;
import gigedi.dev.infra.config.oauth.GoogleProperties;
import gigedi.dev.infra.config.redis.RedisProperties;

@Configuration
@EnableConfigurationProperties({
GoogleProperties.class,
JwtProperties.class,
DiscordProperties.class,
FigmaProperties.class
FigmaProperties.class,
RedisProperties.class
})
public class PropertiesConfig {}
32 changes: 32 additions & 0 deletions src/main/java/gigedi/dev/infra/config/redis/RedisConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package gigedi.dev.infra.config.redis;

import java.time.Duration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;

import lombok.RequiredArgsConstructor;

@Configuration
@RequiredArgsConstructor
public class RedisConfig {
private final RedisProperties redisProperties;

@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration redisConfig =
new RedisStandaloneConfiguration(redisProperties.host(), redisProperties.port());
if (!redisProperties.password().isBlank())
redisConfig.setPassword(redisProperties.password());
LettuceClientConfiguration clientConfig =
LettuceClientConfiguration.builder()
.commandTimeout(Duration.ofSeconds(1))
.shutdownTimeout(Duration.ZERO)
.build();
return new LettuceConnectionFactory(redisConfig, clientConfig);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package gigedi.dev.infra.config.redis;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "spring.data.redis")
public record RedisProperties(String host, int port, String password) {}
9 changes: 9 additions & 0 deletions src/main/resources/application-redis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
spring:
config:
activate:
on-profile: "redis"
data:
redis:
host: ${REDIS_HOST:localhost}
port: ${REDIS_PORT:6379}
password: ${REDIS_PASSWORD:}
1 change: 1 addition & 0 deletions src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ spring:
dev: "dev, datasource, log"
include:
- security
- redis

0 comments on commit c6ad9c1

Please sign in to comment.