Sample Guide for Redis Components

Redis Sample Project

  1. 기본 설명
    Redis(레디스)는 고성능 키-값 형식의 저장소로서
    문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 BSD 라이선스 기반의 오픈소스 NoSQL 이다.
    이 예제는 Redis 와 연동하는 방법에 대한 설명이다.
  2. 사용법
    • 이클립스에 다운로드 받은 sample-redis 프로젝트를 import 한다.
    • pom.xml 에서 아래 내용을 확인
      <dependency>
          <groupId>org.springframework.data</groupId>
          <artifactId>spring-data-redis</artifactId>
          <version>2.7.18</version>
      </dependency>
      <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>3.8.0</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.13.5</version>
      </dependency>
      
    • applicationContext.xml 에서 아래내용을 확인

      <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
          <property name="hostName" value="127.0.0.1" />
          <property name="port" value="6379" />
          <property name="usePool" value="true" />
      </bean>
      
      <bean id="redisDao" class="com.poscoict.glueframework.dao.redis.GlueRedisDao">
          <property name="connectionFactory" ref="jedisConnectionFactory" />
      </bean>
      
      <bean id="redisDaoJson" class="com.poscoict.glueframework.dao.redis.GlueRedisDao">
          <property name="connectionFactory" ref="jedisConnectionFactory" />
          <property name="keySerializer" ref="stringRedisSerializer" />
          <property name="valueSerializer">
              <bean id="redisJsonSerializer" class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
          </property>
      </bean>
      
      <bean id="redisDaoCustom" class="com.poscoict.glueframework.dao.redis.GlueRedisDao">
          <property name="connectionFactory" ref="jedisConnectionFactory" />
          <property name="keySerializer" ref="stringRedisSerializer" />
          <property name="valueSerializer">
              <bean id="customSerializer" class="sample.redis.GlueRedisSerializer" />
          </property>
      </bean>
      
    • 설정 Bean 파일 설명
      • redisDao : 기본 CRUD 를 위한 DAO
      • jedisConnectionFactory : redis server 아이피와 포트를 입력한다
      • redisDaoJson, redisDaoCustom : serializer 를 다르게 적용하는 경우의 DAO
    • 단위테스트(JUnit Test)
      src/test/java/junit 아래의 자바파일로 단위테스트 가능
    • 단위테스트 실행
      각 Test 파일에서 오른쪽 마우스 클릭하여 Run As - JUnit Test 를 이용하여 테스트
    • 각 Test 파일들에 대한 설명
      • ActivityTest : redis data type 별 service 를 이용해 set, get, delete 테스트
      • RedisDaoTest : redis data type 별 GlueRedisDao 모듈 테스트
      • RedisSerializerTest : 다양한 Serializer 를 활용한 테스트
    • dao 생성시,
      serializer property 가 존재하면 해당 serializer 를 GlueRedisDao 에서 RedisTemplate 생성시 DefaultSerializer 로 이용.
      serializer 없이 keySerializer 나 valueSerializer 를 전달하면 해당 serializer 를 이용.