转载请标明出处 http://coderknock.com
源码:http://git.oschina.net/sanchan/SparkJsonRedis
消息publish端
![Redis 订阅 Java实现]()
订阅监听:
![Redis 订阅 Java实现]()
```java import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;
/* * 拿客 www.coderknock.com * 微信公众号 coderknock * 作者:三产 / public class TestRedis { public static void main(String[] args) { //获取redis连接池 JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost"); try (Jedis jedis = pool.getResource()) { // jedis.set("foo", "bar"); // String foobar = jedis.get("foo"); // jedis.zadd("sose", 0, "car"); // jedis.zadd("sose", 0, "bike"); // Set sose = jedis.zrange("sose", 0, -1); // System.out.println(""); // 发布 String publishName = "testPublish"; int i = 1; while (true) { try { Thread.currentThread().sleep(1000); i++; System.out.println(jedis.publish(publishName, i + "")); if (i == 999) { break; } } catch (InterruptedException e) { e.printStackTrace(); } } } finally { pool.destroy(); } } } ``` 消息订阅端```java /* * 拿客 www.coderknock.com * 微信公众号 coderknock * 作者:三产 /
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;
/* * 拿客 www.coderknock.com * 微信公众号 coderknock * 作者:三产 / public class TestJedisPubSub { public static void main(String[] args) { //获取redis连接池 JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost"); try (Jedis jedis = pool.getResource()) { jedis.subscribe(new PubListener(), "testPublish"); } pool.destroy(); } } ``` 订阅端监听器```java import redis.clients.jedis.JedisPubSub;
/* * 拿客 www.coderknock.com * 微信公众号 coderknock * 作者:三产 / public class PubListener extends JedisPubSub { // 取得订阅的消息后的处理 public void onMessage(String channel, String message) { System.out.println("取得订阅的消息后的处理"); System.out.println(channel + "=" + message); }
// 初始化订阅时候的处理 public void onSubscribe(String channel, int subscribedChannels) { System.out.println("初始化订阅时候的处理"); System.out.println(channel + "=" + subscribedChannels); } // 取消订阅时候的处理 public void onUnsubscribe(String channel, int subscribedChannels) { System.out.println("取消订阅时候的处理"); System.out.println(channel + "=" + subscribedChannels); } // 初始化按表达式的方式订阅时候的处理 public void onPSubscribe(String pattern, int subscribedChannels) { System.out.println("初始化按表达式的方式订阅时候的处理"); System.out.println(pattern + "=" + subscribedChannels); } // 取消按表达式的方式订阅时候的处理 public void onPUnsubscribe(String pattern, int subscribedChannels) { System.out.println("取消按表达式的方式订阅时候的处理"); System.out.println(pattern + "=" + subscribedChannels); } // 取得按表达式的方式订阅的消息后的处理 public void onPMessage(String pattern, String channel, String message) { System.out.println("取得按表达式的方式订阅的消息后的处理"); System.out.println(pattern + "=" + channel + "=" + message); }} ```
Redis订阅者与发布者:
订阅监听:
