Ehcache와 마찬가지로 클래스 경로에 Redis가 존재하고 Redis가 구성된 경우 RedisCacheManager가 기본적으로 캐시 공급자로 사용됩니다. Redis 독립형 캐시를 사용하는 단계는 다음과 같습니다. 1. 캐시 종속성을 추가하기 위한 프로젝트 생성
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
2. 캐시 구성
# Redis의 키에는 접두사가 있습니다. "cache name::"Bookspring.cache.cache-names =c1,c2
# 캐시 유효 기간, 즉 Redis
spring.cache.redis.time-to-live=1800s
# Redis 구성
spring.redis.database=0
spring.redis의 키 만료 시간을 구성합니다. 호스트=localhost
spring.redis.port=6379
spring .redis.password=123456
spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-idle=8
spring. redis.jedis.pool.max-wait=-1ms
spr 애플리케이션은 동일하므로 여기서는 자세한 설명을 생략하겠습니다
4. BookDao 만들기
@SpringBootApplication @EnableCaching public class CacheApplication { public static void main(String[] args) { SpringApplication.run(CacheApplication.class, args); } }
public class Book implements Serializable { private Integer id; private String name; private String author; @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", author='" + author + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
@Repository @CacheConfig(cacheNames = "book_cache") public class BookDao { @Cacheable public Book getBookById(Integer id) { System.out.println("getBookById"); Book book = new Book(); book.setId(id); book.setName("三国演义"); book.setAuthor("罗贯中"); return book; } @CachePut(key = "#book.id") public Book updateBookById(Book book) { System.out.println("updateBookById"); book.setName("三国演义2"); return book; } @CacheEvict(key = "#id") public void deleteBookById(Integer id) { System.out.println("deleteBookById"); } }
deleteBookById
getBookByIdb3:Book{id=1, name ='삼국지', 저자='나관중'}
updateBookByIdb4:Book{id= 1, name='삼국지2', 저자='나관중'}
순서 왕복 테스트에서 캐시의 영향을 피하기 위해 먼저 삭제 작업을 수행합니다(이렇게 하면 캐시도 삭제됩니다). 그런 다음 쿼리를 실행하여 정상적으로 인쇄한 다음 인쇄하지 않고 다른 쿼리를 실행한 다음(캐시를 직접 읽음) 삭제를 실행한 다음 쿼리를 실행하고 인쇄가 정상(삭제 작업에서도 캐시를 삭제함)을 한 다음 업데이트 작업이 실행되고(캐시가 동시에 업데이트됨) 마지막으로 쿼리가 다시 수행되어 업데이트된 데이터가 인쇄됩니다.
위 내용은 SpringBoot 캐싱 메커니즘의 Redis 독립형 캐시를 적용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!