- pom.xml
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
- application.properties文件配置
spring.redis.host=127.0.0.1
spring.redis.database=0
spring.redis.password=123456
spring.redis.port=6379
spring.redis.jedis.pool.max-active=20
spring.redis.jedis.pool.max-idle=20
spring.redis.jedis.pool.max-wait=20
spring.redis.jedis.pool.min-idle=20
spring.redis.timeout=10000
- 发布者
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Publisher{
JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), "127.0.0.1", 6379,0,"123456",0);
public Publisher(){}
public synchronized void publishMsg(String channel, String message) {
try {
Jedis jedis = jedisPool.getResource();
jedis.publish(channel, message);
} catch (Exception e) {
System.out.println("redis is fail");
}
}
}
- 订阅频道
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class SubThread{
JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), "127.0.0.1", 6379,0,"123456",0);
private final Subscriber subscriber = new Subscriber();
public SubThread() {}
public void subscribeMsg(String channels) {
try {
Jedis jedis = jedisPool.getResource();
jedis.subscribe(subscriber, channels);
} catch (Exception e) {
}
}
}
- 订阅者监听类
import redis.clients.jedis.JedisPubSub;
public class Subscriber extends JedisPubSub {
public Subscriber(){}
@Override
public synchronized void onMessage(String channel, String message) {
System.out.println("这是接收到的消息:"+message);
}
@Override
public void onSubscribe(String channel, int subscribedChannels) {
System.out.println(String.format("订阅了该频道",
channel, subscribedChannels));
}
}
- 测试消息
public static void main(String[] args) {
SubThread subThread = new SubThread();
subThread.subscribeMsg("mychannel");
}
public static void main(String[] args) {
Publisher publisher = new Publisher();
publisher.publishMsg("mychannel", "这是一条测试消息");
}