SpringBoot+SpringCache 2 단계 캐 시 구현(Redis+Caffine)
5482 단어 SpringBootSpringCache캐 시
1.1 내용 설명
Spring cache:주로 spring cache 가 정의 하 는 인터페이스 방법 설명 과 주해 중의 속성 설명 을 포함 합 니 다.
springboot+spring cache:rediscache 구현 중의 결함
caffeine 안내
spring boot+spring cache 2 급 캐 시 구현
캐 시 를 사용 할 때의 흐름 도
1.2 Sping Cache
spring cache 는 spring-context 패키지 에서 제공 하 는 주석 기반 캐 시 구성 요소 로 표준 인 터 페 이 스 를 정의 합 니 다.이 인 터 페 이 스 를 실현 하면 방법 적 으로 주 해 를 추가 하여 캐 시 를 실현 할 수 있 습 니 다.이렇게 하면 캐 시 코드 와 업무 처리 가 결 합 된 문 제 를 피 할 수 있다.spring cache 의 실현 은 spring aop 에서 방법 절단면(MethodInterceptor)을 사용 하여 패 키 징 한 확장 입 니 다.물론 spring aop 도 Aspect 를 바탕 으로 이 루어 집 니 다.
spring cache 핵심 인 터 페 이 스 는 두 개 입 니 다.Cache 와 Cache Manager 입 니 다.
1.2.1 Cache 인터페이스
캐 시 를 제공 하 는 구체 적 인 작업,예 를 들 어 캐 시 를 넣 고 읽 고 청소 하 며 spring 프레임 워 크 에서 기본적으로 제공 하 는 것 은 다음 과 같 습 니 다.
1.2.2 CacheManager 인터페이스
주로 Cache 를 제공 하여 bean 의 생 성 을 실현 합 니 다.모든 응용 프로그램 에서 cacheName 을 통 해 Cache 를 격 리 할 수 있 습 니 다.모든 CaheName 은 하나의 Cache 에 대응 하여 이 루어 집 니 다.spring 프레임 워 크 에서 기본적으로 제공 하 는 실현 과 Cache 의 실현 은 모두 쌍 을 이 루어 나타 납 니 다.
1.2.3 자주 사용 하 는 주해 설명
package com.xfgg.demo.config;
import lombok.AllArgsConstructor;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.CacheManager;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
@Configuration
@AllArgsConstructor
// Caffeine
public class CacheConfig {
@Bean
public CacheManager cacheManager(){
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
cacheManager.setCaffeine(Caffeine.newBuilder()
// refreshAfterWrite cacheLoader
// 5 / , key, loading 【 : 、 Key、 】
.expireAfterWrite(5, TimeUnit.MINUTES)
//
.initialCapacity(10)
// cache
.maximumSize(150)
);
return cacheManager;
}
}
package com.xfgg.demo.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
// redis
public class RedisConfig<GenericObjectPoolConfig> {
@Value("${spring.redis1.host}")
private String host;
@Value("${spring.redis1.port}")
private Integer port;
@Value("${spring.redis1.password}")
private String password;
@Value("${spring.redis1.database}")
private Integer database;
@Value("${spring.redis1.lettuce.pool.max-active}")
private Integer maxActive;
@Value("${spring.redis1.lettuce.pool.max-idle}")
private Integer maxIdle;
@Value("${spring.redis1.lettuce.pool.max-wait}")
private Long maxWait;
@Value("${spring.redis1.lettuce.pool.min-idle}")
private Integer minIdle;
@Bean
public RedisStandaloneConfiguration redis1RedisConfig() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName(host);
config.setPassword(RedisPassword.of(password));
config.setPort(port);
config.setDatabase(database);
return config;
}
//
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String,Object>template=new RedisTemplate<>();
//
template.setConnectionFactory(factory);
// key
template.setKeySerializer(new StringRedisSerializer());
// value
template.setValueSerializer(new StringRedisSerializer());
return template;
}
}
하 나 는 cacheable 주석 을 사용 하고 하 나 는 redistemplate 를 사용 하여 캐 시 합 니 다.회사 프로젝트 에 사용 되 는 것 은 jedis 와 jediscluster 이기 때문에 여 기 는 단지 알 아 보 는 것 일 뿐 자세히 쓰 지 않 았 습 니 다.
SpringBoot+SpringCache 구현 2 급 캐 시(Redis+Caffine)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot SpringCache 2 급 캐 시 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.