站長資訊網(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ī)制包括三個(gè)部分,發(fā)布者,訂閱者和Channel。

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

        發(fā)布者和訂閱者都是Redis客戶端,Channel則為Redis服務(wù)器端,發(fā)布者將消息發(fā)送到某個(gè)的頻道,訂閱了這個(gè)頻道的訂閱者就能接收到這條消息。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號
        主站蜘蛛池模板: 久久精品三级视频| 人妻精品久久无码区 | 午夜精品久久久内射近拍高清| 国产精品免费福利久久| 精品国产日韩亚洲一区| 久久久精品免费国产四虎| 精品熟女少妇av免费久久| 色一乱一伦一图一区二区精品| 99久久精品久久久久久清纯| 国产精品免费看久久久| 亚洲精品无码不卡在线播HE| 精品91自产拍在线观看| 欧美精品国产一区二区| 99精品人妻无码专区在线视频区| 亚洲精品国产精品乱码在线观看| 久久er国产精品免费观看8| 国产成人精品综合久久久| 国产精品久久久久久久| 精品久久久噜噜噜久久久| 亚洲精品乱码久久久久久中文字幕 | 中文字幕一区二区三区日韩精品| 国产精品麻豆欧美日韩ww| 久久免费精品视频| 99精品国产在热久久无毒不卡| 亚洲AV永久无码精品成人| 呦交小u女国产精品视频| 欧美国产精品va在线观看| 精品国产亚洲一区二区在线观看 | 亚洲精品亚洲人成在线观看下载 | 四虎国产精品永久一区| 精品国产欧美一区二区| 欧美精品一区二区精品久久 | 日韩精品内射视频免费观看| 亚洲国产精品专区在线观看 | 久久精品国产久精国产| 国产精品久久久久久久久免费| 国产成人精品免费久久久久| 国产精品186在线观看在线播放| 国精品无码一区二区三区左线| 精品久久久久久国产潘金莲| 熟妇无码乱子成人精品|