当前位置: 首页 > redis, 分布式系统, 缓存系统 > 正文

redis pubsub java 实例

关键字:
1 星2 星3 星4 星5 星 (暂无评分)
Loading ... Loading ...
baidu_share

redis pubsub可以实现发布–订阅功能,实时推送给订阅端。

1.实现发布功能。

public class JedisPubSubTest {
	static JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
	static{
		jedisPoolConfig.setMaxActive(1000);
		jedisPoolConfig.setMaxIdle(30);
        }
 	static JedisPool pool = new JedisPool(jedisPoolConfig, "10.10.22.47" ,6379,5000); 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		Jedis jedis = pool.getResource(); 
		try {
 
			jedis.publish("hq_xq_pubsub", "hello word!");
 
			} finally {
			  /// ... it's important to return the Jedis instance to the pool once you've finished using it
			  pool.returnResource(jedis);
			}
			/// ... when closing your application:
			pool.destroy(); 
	}
}

2.实现发布订阅功能
继续JedisPubSub类实现对订阅到消息后的处理。

public class HqJedisPubSubListener extends JedisPubSub {
 
	@Override
	public void onMessage(String arg0, String arg1) {
		// 取得订阅的消息后的处理  
		System.out.println(arg0+"    "+arg1);
	}
 
	@Override
	public void onPMessage(String arg0, String arg1, String arg2) {
		// 取得按表达式的方式订阅的消息后的处理  
 
	}
 
	@Override
	public void onPSubscribe(String arg0, int arg1) {
		// 初始化按表达式的方式订阅时候的处理
 
	}
 
	@Override
	public void onPUnsubscribe(String arg0, int arg1) {
		 // 取消按表达式的方式订阅时候的处理  
 
	}
 
	@Override
	public void onSubscribe(String arg0, int arg1) {
		 // 初始化订阅时候的处理  
 
	}
 
	@Override
	public void onUnsubscribe(String arg0, int arg1) {
		// 取消订阅时候的处理
 
	}
 
}

测试订阅功能。

public class JedisTest {
	static JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
	static{
		jedisPoolConfig.setMaxActive(1000);
		jedisPoolConfig.setMaxIdle(30);
	}
 
	static JedisPool pool = new JedisPool(jedisPoolConfig, "10.10.22.47" ,6379,5000); 
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		Jedis jedis = pool.getResource(); 
		try {
			HqJedisPubSubListener pubsub=new HqJedisPubSubListener();
			jedis.subscribe(pubsub, "hq_xq_pubsub");
 
			} finally {
			  /// ... it's important to return the Jedis instance to the pool once you've finished using it
			  pool.returnResource(jedis);
			}
			/// ... when closing your application:
			pool.destroy(); 
	}
}

测试的时候先启动JedisTest 类,然后再启动JedisPubSubTest类。主要运行原理就是socket。

本文固定链接: http://www.chepoo.com/redis-pubsub-java-example.html | IT技术精华网

redis pubsub java 实例:等您坐沙发呢!

发表评论