SpringCache 분산 캐 시 구현 방법(redis 잠 금 해제 문제 회피)
5203 단어 SpringCache분산 캐 시자 물 쇠 를 풀다
spring 3.1 부터 정의
또한 JCache(JSR-107)주 해 를 사용 하여 우리 의 개발 을 간소화 하 는 것 을 지원 합 니 다.
기초 개념
실전 사용
SpringCache 통합 캐 시 개발 간소화
상용 주해
상용 주해
설명 하 다.
@CacheEvict
캐 시 에서 데 이 터 를 삭제 하 는 동작 을 실행 합 니 다(실효 모드)
@CachePut
업데이트 캐 시 실행 방법 에 영향 을 주지 않 습 니 다.
@Caching
조합 이상 여러 조작
@CacheConfig
클래스 단계 에서 캐 시 를 공유 하 는 동일 한 설정
@Cacheable
데 이 터 를 캐 시 에 저장 하 는 동작 을 실행 합 니 다.
방법.
1),캐 시 기능 오픈@EnableCashing
2)、주석 만 사용 하면 캐 시 작업 완료
1.의존 도입
spring-boot-starter-cache、spring-boot-starter-data-redis
redis 와 함께 사용
<!-- redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!-- lettuce -->
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2.설정 쓰기프로젝트 에 config 폴 더 를 새로 만 들 고 config 클래스 를 새로 만 듭 니 다.
코드 는 다음 과 같 습 니 다:
@EnableConfigurationProperties(CacheProperties.class)// configuration
@EnableCaching
@Configuration
public class MyCacheConfig {
/**
* ( )
* @param cacheProperties
* @return
*/
@Bean
RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties){
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config= config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
CacheProperties.Redis redisProperties = cacheProperties.getRedis();
if (redisProperties.getTimeToLive() != null) {
config = config.entryTtl(redisProperties.getTimeToLive());
}
if (redisProperties.getKeyPrefix() != null) {
config = config.prefixCacheNameWith(redisProperties.getKeyPrefix());
}
if (!redisProperties.isCacheNullValues()) {
config = config.disableCachingNullValues();
}
if (!redisProperties.isUseKeyPrefix()) {
config = config.disableKeyPrefix();
}
return config;
}
}
(1)、
CacheAutoConfiguration RedisAutoConfiguration
RedisCacheManager
(2)、 redis
spring.cache.typeredis
3.pom 설정 수정
spring:
cache:
type: redis
redis:
#
time-to-live: 60000
# , ,
key-prefix: CACHE_
#
use-key-prefix: true
# ,
cache-null-values: true
4.원리
1、 【 ( )】
2、@cacheable({"category"})
, ,
, ,
3、
1)、 ,
2)、key : ::SimpleKey[] ( key )
3)、 value 。 jdk , redis
4)、 ttl -1 ( )
:
1)、 key: key , SpEL
SpEL( )
2)、 : ttl
3)、 json :
RedisCacheConfiguration
실효 모드:@CacheEvict원리:캐 시 를 변경 할 때 redis 의 캐 시 를 삭제 합 니 다.
(다음 검색 시 캐 시 를 다시 불 러 옵 니 다)
추천 사용@CacheEvict
여러 캐 시 작업 을 동시에 진행 합 니 다.@Caching 은 파 티 션 의 모든 데 이 터 를 삭제 할 것 을 지정 합 니 다.
@CacheEvict(value="category",allEntries=true)는 통 일 된 형식의 데 이 터 를 저장 하고 같은 파 티 션 으로 지정 할 수 있 습 니 다.파 티 션 이름 은 기본적으로 캐 시 접두사 입 니 다.
클래스 에서 사용:@CacheEvict(value="category",allEntries=true)
설정 에서 사용:(접두사+기본 접두사 사용 하지 않 음)
spring.cache.redis.use-key-prefix=true
더 블 쓰기 모드:@CachePut
원리:캐 시 를 변경 할 때 기 존 캐 시 를 삭제 하고 새 데 이 터 를 캐 시 에 다시 삽입 합 니 다.
SpringCache 분포 식 캐 시(redis 잠 금 해제 문제 회피)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringCache 분포 식 캐 시 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringBoot+SpringCache 2 단계 캐 시 구현(Redis+Caffine)spring cache 는 spring-context 패키지 에서 제공 하 는 주석 기반 캐 시 구성 요소 로 표준 인 터 페 이 스 를 정의 합 니 다.이 인 터 페 이 스 를 실현 하면 방법 적 으로 주 해 를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.