의존성부분. springdata만 넣으면 jedis는 알아서 들어가니 따로 넣어줄 필요는 없다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!-- Spring,Data,Redis,Driver,Database --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.1.0.RELEASE</version> </dependency> <!-- jedis, redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.1.0</version> <!--<type>jar</type>--> <!--<scope>compile</scope>--> </dependency> |
스프링에 레디스 설정 넣기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<bean id="jedisConnectinFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="레디스서버주소" /> <property name="port" value="6379"/> <property name="password" value="빅토리아" /> <!--<property name="usePool" value="true" />--> </bean> <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectinFactory"/> <property name="keySerializer" ref="stringRedisSerializer"/> <property name="valueSerializer" ref="stringRedisSerializer"/> </bean> <bean id="jedisListener" class="org.beansugar.tools.mq.redis.RedisSubscriber"> <constructor-arg name="host" value="레디스서버주소" /> <constructor-arg name="password" value="빅토리아" /> <constructor-arg name="port" value="6379"/> <constructor-arg name="channelName" value="채널이름" /> </bean> |
스프링은 자동으로 스트링앞에 잡문자를 붙인다. 이종언어간 통신하는데 방해된다. 이걸 없애려면 위의 처리가 필요.
펍섭/키밸류스토어는 접속을따로하니별도설정
redis.clients.jedis.JedisPubSub abstract클래스가 있다. 이걸 구현.
JedisPubSubLocal extends JedisPubSub처럼했다
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class JedisListener { @Autowired private RedisSubscriber jedisListener; @Autowired ApiMapper apiMapper; @Autowired RedisTemplate redisTemplate; public JedisListener() { jedisListener.subscriber(new JedisPubSubLocal(apiMapper, redisTemplate)); } } |
그리고 그냥 실행.