-
添加 Redis 和 Spring Data Redis 的依赖
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-data-redis</artifactId>
-
</dependency>
-
-
创建 RedisMessageListenerContainer 和 RedisTemplate 实例:
-
@Configuration
-
public class RedisConfig {
-
@Autowired
-
private RedisConnectionFactory redisConnectionFactory;
-
@Bean
-
public RedisMessageListenerContainer messageListenerContainer() {
-
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
-
container.setConnectionFactory(redisConnectionFactory);
-
return container;
-
}
-
@Bean
-
public RedisTemplate<String, Object> redisTemplate() {
-
RedisTemplate<String, Object> template = new RedisTemplate<>();
-
template.setConnectionFactory(redisConnectionFactory);
-
template.setDefaultSerializer(new StringRedisSerializer());
-
return template;
-
}
-
}
-
-
创建消息监听器:
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.data.redis.connection.Message;
-
import org.springframework.data.redis.connection.MessageListener;
-
import org.springframework.data.redis.core.RedisTemplate;
-
import org.springframework.stereotype.Component;
-
@Component
-
public class RedisListener implements MessageListener {
-
@Autowired
-
RedisTemplate redisTemplate;
-
@Override
-
public void onMessage(Message message, byte[] bytes) {
-
String s = redisTemplate.getStringSerializer().deserialize(message.getBody()).toString();
-
System.err.println("key:"+s);//接收消息后的业务逻辑
-
}
-
}
-
-
订阅消息:
-
@Autowired
-
private RedisMessageListenerContainer container;
-
@Autowired
-
private MessageListener listener;
-
@PostConstruct
-
public void subscribe() {//订阅消息
-
container.addMessageListener(listener, new PatternTopic("test"));
-
}
-
-
发布消息:
-
@Autowired
-
private RedisTemplate<String, Object> redisTemplate;
-
public void publish() {
-
redisTemplate.convertAndSend("test", "Hello, world!");
-
}
-
Redis消息订阅与发布
最新推荐文章于 2024-07-03 19:13:37 发布