Skip to content

Commit 9606f8f

Browse files
committed
refactor: Get Company Redis Caching Apply #95
1 parent e899d79 commit 9606f8f

3 files changed

Lines changed: 30 additions & 1 deletion

File tree

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ dependencies {
105105

106106
//logging
107107
implementation "net.logstash.logback:logstash-logback-encoder:7.4"
108+
109+
//역직렬화
110+
implementation 'com.fasterxml.jackson.module:jackson-module-parameter-names'
108111
}
109112

110113
tasks.named('test') {

src/main/java/sopt/comfit/company/service/CompanyService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package sopt.comfit.company.service;
22

33
import lombok.RequiredArgsConstructor;
4+
import org.springframework.cache.annotation.Cacheable;
45
import org.springframework.data.domain.Pageable;
56
import org.springframework.stereotype.Service;
67
import org.springframework.transaction.annotation.Transactional;
@@ -31,7 +32,10 @@ public class CompanyService {
3132
private final CompanyIssueRepository companyIssueRepository;
3233
private final UserRepository userRepository;
3334

34-
35+
@Cacheable(
36+
value = "companyList",
37+
key = "#keyword + '_' + #industry + '_' + #scale + '_' + #sort + '_' + #isRecruited + '_' + #pageable.pageNumber"
38+
)
3539
@Transactional(readOnly = true)
3640
public PageDto<GetCompanyListResponseDto> getCompanyList( String keyword,
3741
List<EIndustry> industry,

src/main/java/sopt/comfit/global/config/RedisConfig.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
package sopt.comfit.global.config;
22

3+
import org.springframework.cache.annotation.EnableCaching;
34
import org.springframework.context.annotation.Bean;
45
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.data.redis.cache.RedisCacheConfiguration;
7+
import org.springframework.data.redis.cache.RedisCacheManager;
58
import org.springframework.data.redis.connection.RedisConnectionFactory;
69
import org.springframework.data.redis.core.RedisTemplate;
10+
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
11+
import org.springframework.data.redis.serializer.RedisSerializationContext;
712
import org.springframework.data.redis.serializer.StringRedisSerializer;
813

14+
import java.time.Duration;
15+
16+
@EnableCaching
917
@Configuration
1018
public class RedisConfig {
1119

@@ -23,4 +31,18 @@ public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factor
2331

2432
return redisTemplate;
2533
}
34+
35+
@Bean
36+
public RedisCacheManager cacheManager(RedisConnectionFactory factory) {
37+
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
38+
.entryTtl(Duration.ofMinutes(10))
39+
.serializeKeysWith(RedisSerializationContext.SerializationPair
40+
.fromSerializer(new StringRedisSerializer()))
41+
.serializeValuesWith(RedisSerializationContext.SerializationPair
42+
.fromSerializer(new GenericJackson2JsonRedisSerializer()));
43+
44+
return RedisCacheManager.builder(factory)
45+
.cacheDefaults(config)
46+
.build();
47+
}
2648
}

0 commit comments

Comments
 (0)