Spring Cache 통합 Redis 단순 구현
이전 글 은 Spring 통합 cache Manager 를 어떻게 사용 하 는 지 간단하게 설정 하 였 으 며, 사용 하 는 실현 은 spring 이 제공 하 는 Simple Cache Manager 이지 만, 프로젝트 에 서 는 이러한 실현 을 사용 하지 않 고 Redis 로 캐 시 관 리 를 하 는 경우 가 많 습 니 다. 다음은 자바 방식 으로 spring cache 에 redis 를 집합 하면 됩 니 다.
<dependency>
<groupId>org.springframework.datagroupId>
<artifactId>spring-data-redisartifactId>
<version>1.7.8.RELEASEversion>
dependency>
<dependency>
<groupId>redis.clientsgroupId>
<artifactId>jedisartifactId>
<version>2.9.0version>
dependency>
2. JedisConnectionFactory , RedisCacheManager CacheManager
@Configuration
@EnableCaching //
public class SpringCacheConfig {
/**
* Redis
* @param redisTemplate
* @return RedisCacheManager
*/
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate){
return new RedisCacheManager(redisTemplate);
}
@Bean
public JedisConnectionFactory redisConnectionFactory(){
JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
redisConnectionFactory.setHostName("127.0.0.1");//redis
redisConnectionFactory.setPort(6379);//
return redisConnectionFactory;
}
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
RedisTemplate 지원
Spring 의 JdbcTemplate 대상 을 잘 알 면 RedisTemplate 의 역할 을 짐작 할 수 있 을 것 입 니 다. RedisTemplate 대상 은 RedisConnection 에 대해 패 키 징 을 했 습 니 다. 연결 관리, 직렬 화 등 기능 을 제공 하여 Redis 의 상호작용 에 대해 더욱 높 은 차원 의 추상 을 가 집 니 다.또한 Redis 조작 명령 의 조작 보 기 를 제공 하여 Redis 의 조작 을 매우 편리 하고 간소화 했다.
주의사항 1. 캐 시 할 자바 대상 은 Serializable 인 터 페 이 스 를 실현 해 야 합 니 다. Spring 은 대상 을 먼저 직렬 화하 고 Redis 에 저장 하기 때 문 입 니 다. 예 를 들 어 본 논문 의 com. defonds. bdp. city. bean. City 류 등 입 니 다.Serializable 를 실행 하지 않 으 면 이러한 오류 가 발생 합 니 다: nested exception is java. lang. IllegalArgument 예외: Default Serializer requires a Serializable payload but received an object of type [com. defonds. bdp. city. bean. City].2. 캐 시 수명 주 기 를 설정 할 수 있 습 니 다. 그리고 Spring CacheManager 를 맡 길 수 있 습 니 다. redis - cli 명령 행 을 통 해 캐 시 를 관리 하려 고 하지 마 십시오.예 를 들 어 provinceCities 방법의 캐 시, 한 성의 조회 결 과 는 key - value 형식 으로 Redis 에 저 장 됩 니 다. key 는 우리 가 방금 사용자 정의 로 생 성 한 key 입 니 다. value 는 직렬 화 된 대상 입 니 다. 이 key 는 key 이름 이 provinceCities ~ keys - value 저장 소 에 놓 여 있 습 니 다. 다음 그림 "provinceCities 방법 이 Redis 에 있 는 캐 시 상황 을 참고 하 십시오."redis - cli 를 통 해 del 명령 을 사용 하여 provinceCities ~ keys 를 삭제 할 수 있 지만 각 성의 캐 시 는 삭제 되 지 않 습 니 다.3. CacheManager 는 캐 시 만 료 시간 을 설정 해 야 합 니 다. 그렇지 않 으 면 캐 시 대상 이 만 료 되 지 않 습 니 다. 이렇게 하 는 이 유 는 위 와 같 습 니 다. 일부 야생 데이터 가 영구적 으로 저장 되 지 않도록 해 야 합 니 다.또한 캐 시 만 료 시간 을 설정 하 는 것 도 자원 이용 의 최대 화 에 도움 이 됩 니 다. 캐 시 에 남아 있 는 것 은 항상 핫 이 슈 데이터 이기 때 문 입 니 다.4. 캐 시 는 많이 읽 고 적 게 쓰 는 경우 에 적용 되 며 조회 할 때 캐 시 명중률 이 낮 고 쓰기 작업 이 빈번 한 경우 등 장면 은 캐 시 를 사용 하기에 적합 하지 않다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.