Spring Cache 통합 Redis 단순 구현

5351 단어 Javaredisspring
머리말
이전 글 은 Spring 통합 cache Manager 를 어떻게 사용 하 는 지 간단하게 설정 하 였 으 며, 사용 하 는 실현 은 spring 이 제공 하 는 Simple Cache Manager 이지 만, 프로젝트 에 서 는 이러한 실현 을 사용 하지 않 고 Redis 로 캐 시 관 리 를 하 는 경우 가 많 습 니 다. 다음은 자바 방식 으로 spring cache 에 redis 를 집합 하면 됩 니 다.
  • 먼저 도입 해 야 할 jar
  •         <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. 캐 시 는 많이 읽 고 적 게 쓰 는 경우 에 적용 되 며 조회 할 때 캐 시 명중률 이 낮 고 쓰기 작업 이 빈번 한 경우 등 장면 은 캐 시 를 사용 하기에 적합 하지 않다.

    좋은 웹페이지 즐겨찾기