欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          redis發(fā)布訂閱什么用

          redis發(fā)布訂閱什么用

          Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。

          Redis 客戶端可以訂閱任意數(shù)量的頻道。 (推薦學(xué)習(xí):Redis視頻教程)

          Redis提供了發(fā)布訂閱功能,可以用于消息的傳輸,Redis的發(fā)布訂閱機(jī)制包括三個部分,發(fā)布者,訂閱者和Channel。

          redis發(fā)布訂閱什么用

          發(fā)布者和訂閱者都是Redis客戶端,Channel則為Redis服務(wù)器端,發(fā)布者將消息發(fā)送到某個的頻道,訂閱了這個頻道的訂閱者就能接收到這條消息。Redis的這種發(fā)布訂閱機(jī)制與基于主題的發(fā)布訂閱類似,Channel相當(dāng)于主題。

          1,引入Jedis

                  <dependency>             <groupId>redis.clients</groupId>             <artifactId>jedis</artifactId>             <version>2.9.0</version>         </dependency>

          2,具體實(shí)現(xiàn)代碼

          package com.hcmony.sword.redis;   import org.apache.commons.lang3.StringUtils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPubSub;   /**  * <h3>Shenjue.java基本描述</h3>  * <p></p>  *  * @author hcmony  * @since V1.0.0, 2019/05/06 20:07  */ public class RedisMQ {  	private static final String TOPIC="TOPIC";   	private final JedisPool jedisPool;   	public RedisMQ(JedisPool jedisPool) { 		this.jedisPool = jedisPool; 	}   	/** 	 * 發(fā)布消息 	 * @param topic 	 * @param messge 	 */ 	public void publish(String topic ,String messge){   		Jedis jedis = null; 		if (StringUtils.isBlank(topic)){ 			topic=TOPIC; 		} 		try { 			jedis = jedisPool.getResource(); 			jedis.publish(topic,messge); 		} 		finally { 			if (null != jedis) { 				jedis.close(); 			} 		} 	}   	/** 	 * 訂閱消息 	 * @param topic 	 * @param jedisPubSub 	 */ 	public void subscribe(String topic,JedisPubSub jedisPubSub){   		Jedis jedis = null; 		if (StringUtils.isBlank(topic)){ 			topic=TOPIC; 		} 		try { 			jedis = jedisPool.getResource(); 			jedis.subscribe(jedisPubSub,topic); 		} 		finally { 			if (null != jedis) { 				jedis.close(); 			} 		} 	}     	public static void main(String[] args) { 		//默認(rèn)連接本地redis, 		// loclhost:6379 		JedisPool jedisPool = new JedisPool(); 		RedisMQ publish = new RedisMQ(jedisPool); 		new Thread(new Runnable() { 			@Override 			public void run() { 				publish.subscribe("PID",new MyjedisPubSub()); 			} 		}).start(); 		for (int i=0;i<100;i++){ 			publish.publish("PID","messge"+i); 		}   	}   	public static class MyjedisPubSub extends JedisPubSub { 		@Override 		public void onMessage(String channel, String message) { 			System.out.println("-------channel is "+channel+" message is "+message); 		} 	}   }

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號