>Java >java지도 시간 >Spring Boot에서 캐싱을 위해 Redis를 사용하는 튜토리얼 예제 공유

Spring Boot에서 캐싱을 위해 Redis를 사용하는 튜토리얼 예제 공유

零下一度
零下一度원래의
2017-06-17 11:55:531890검색

이 글은 주로 Redis를 사용하여 Spring Boot에서 캐싱을 수행하는 방법에 대한 관련 정보를 소개합니다. 글의 소개는 매우 자세하며 필요한 모든 사람을 위한 특정 참조 및 학습 가치가 있습니다. .

머리말

이 글에서는 주로 Spring Boot에서 캐싱을 위해 Redis를 사용하는 방법을 소개합니다.

  • 주석 방법을 사용합니다(하지만 마음에 들지 않습니다)

  • redisTemplate을 직접 사용

자세한 소개를 살펴보겠습니다.

1. UserService 만들기


public interface UserService {
 public User findById(int id);
 public User create(User user);
 public User update(User user);
 public void delete(int id);
}

2.


@Servicepublic class UserServiceImpl implements UserService {
 @Autowired
 private UserRepository userRepository;
 @Autowired
 private UserRedis userRedis;
 //this is a key for redis
 private static final String keyHead = "mysql:get:user:";

 @Override
 public User findById(int id) {
  User user = userRedis.get(keyHead+id);
  if (user == null) {
   user = userRepository.findOne(id);
   if (user != null) {
    userRedis.add(keyHead+id, 30L, user);
   }
  }
  return user;
 }

 @Override
 public User create(User user) {
  User newUser = userRepository.save(user);
  if (newUser != null) {
   userRedis.add(keyHead+newUser.getId(), 30L, newUser);
  }
  return newUser;
 }

 @Override
 public User update(User user) {
  if (user != null) {
   userRedis.delete(keyHead+user.getId());
   userRedis.add(keyHead+user.getId(), 30L, user);
  }
  return userRepository.save(user);
 }

 @Override
 public void delete(int id) {
  userRedis.delete(keyHead+id);
  userRepository.delete(id);
 }
}

3. UserController


@RestController
@RequestMapping("/users")
public class UserController {
 @Autowired
 private UserService userService;
 @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
 public Object show(@PathVariable int id) {
  User user = userService.findById(id);
  return user;
 }
}

4를 생성하세요. 결과적으로 쿼리는 30분에 한 번만 실행됩니다

위 내용은 Spring Boot에서 캐싱을 위해 Redis를 사용하는 튜토리얼 예제 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.