spring boot 에 redis 를 내장 하 는 사용 방법 예제

소개
레 디 스 는 현재 업계 에서 가장 광범 위 하 게 사용 되 는 메모리 데이터 저장 소 다.memcached 보다 Redis 는 hashes,lists,sets 등 다양한 데이터 구 조 를 지원 하 며 데이터 의 지속 화 를 지원 합 니 다.그 밖 에 Redis 는 사무,HA,메 인 라 이브 러 리 등 데이터 뱅 크 의 특성 도 제공 합 니 다.Redis 는 캐 시 시스템 과 데이터베이스 의 일부 특성 을 겸비 하고 있어 다양한 응용 장면 을 가지 고 있다 고 할 수 있다.
머리말
유닛 테스트 에 있어 우 리 는 가능 한 한 단일 환경 을 유지 하고 네트워크 자원 과 통신 하지 않도록 해 야 한다.그러면 테스트 의 안정성 과 객관성 을 확보 할 수 있다.springboot 라 는 프레임 워 크 에 있어 유닛 테스트 JUNIT 를 통합 시 켰 고 디자인 프로젝트 를 할 때 여러 가지 내장 저장 도 구 를 사용 할 수 있다.예 를 들 어 mongodb,redis,my sql 등 이다.오늘 은 주로 embedded-redis 의 사용 에 대해 말씀 드 리 겠 습 니 다.
사용 방법 은 다음 과 같다.
패키지 참조 build.gradle 추가

 testCompile(
   'com.github.kstyrc:embedded-redis:0.6'
 )
설정 주입 추가

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.HashOperations;import org.springframework.data.redis.core.ListOperations;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.SetOperations;import org.springframework.data.redis.core.ValueOperations;import org.springframework.data.redis.core.ZSetOperations;import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
 /**
 *    RedisConnectionFactory
 */
 @Autowired
 RedisConnectionFactory redisConnectionFactory;

 /**
 *     RedisTemplate   
 *
 * @return
 */
 @Bean
 public RedisTemplate<String, Object> functionDomainRedisTemplate() {
 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
 initDomainRedisTemplate(redisTemplate, redisConnectionFactory);
 return redisTemplate;
 }

 /**
 *        redis       
 *
 * @param redisTemplate
 * @param factory
 */
 private void initDomainRedisTemplate(RedisTemplate<String, Object> redisTemplate, RedisConnectionFactory factory) {
 redisTemplate.setKeySerializer(new StringRedisSerializer());
 redisTemplate.setHashKeySerializer(new StringRedisSerializer());
 redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
 redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
 redisTemplate.setConnectionFactory(factory);
 }

 /**
 *     HashOperations   ,     Hash     
 *
 * @param redisTemplate
 * @return
 */
 @Bean
 public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
 return redisTemplate.opsForHash();
 }

 /**
 *     ValueOperations   ,     String   
 *
 * @param redisTemplate
 * @return
 */
 @Bean
 public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
 return redisTemplate.opsForValue();
 }

 /**
 *     ListOperations   ,     List   
 *
 * @param redisTemplate
 * @return
 */
 @Bean
 public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
 return redisTemplate.opsForList();
 }

 /**
 *     SetOperations   ,     Set   
 *
 * @param redisTemplate
 * @return
 */
 @Bean
 public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
 return redisTemplate.opsForSet();
 }

 /**
 *     ZSetOperations   ,     ZSet   
 *
 * @param redisTemplate
 * @return
 */
 @Bean
 public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
 return redisTemplate.opsForZSet();
 }
}
업무 층 에서 redis 사용 하기

 @Autowired
 RedisTemplate<String, Object> redisCacheTemplate;
사용 과정 에서 우리 의 RedisTemplate 대상 은 이미 Autowired 에 주입 되 었 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기