Redis(레디스)는 고성능 키-값 형식의 저장소로서
문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 BSD 라이선스 기반의 오픈소스 NoSQL 이다.
이 예제는 Redis 와 연동하는 방법에 대한 설명이다.
이클립스에 다운로드 받은 sample-redis 프로젝트를 import 한다.
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.1.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.7</version> </dependency>
<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>
redisDao : 기본 CRUD 를 위한 DAO
jedisConnectionFactory : redis server 아이피와 포트를 입력한다
redisDaoJson, redisDaoCustom : serializer 를 다르게 적용하는 경우의 DAO
단위테스트(JUnit Test)
src/test/java/junit 아래의 자바파일로 단위테스트 가능
각 Test 파일에서 오른쪽 마우스 클릭하여 Run As - JUnit 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 를 이용.