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

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

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

        1,引入Jedis

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

        2,具體實現(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號
        主站蜘蛛池模板: 久久亚洲国产精品123区 | 精品一区二区三区在线观看 | 国产精品99爱免费视频| 精品爆乳一区二区三区无码av| 久久狠狠一本精品综合网| 日本精品一区二区三区在线观看| 无码国产乱人伦偷精品视频| 日本精品视频在线观看| 国内精品久久久久久不卡影院 | 看99视频日韩精品| 一区二区三区四区精品视频| 99精品在线观看| 国产成人久久精品激情| 久久精品aⅴ无码中文字字幕重口| 亚洲欧美日韩国产一区二区三区精品 | 精品无码av一区二区三区| 亚洲精品高清国产一线久久| 日韩精品一区二区三区不卡| 精品无码三级在线观看视频| 国产精品视频免费一区二区| 94久久国产乱子伦精品免费 | 国产亚洲欧美精品永久| 久久丫精品国产亚洲av不卡| 亚洲精品蜜桃久久久久久| 西瓜精品国产自在现线| 久久无码精品一区二区三区| 久久久久人妻一区精品| 久久久精品人妻无码专区不卡| 精品亚洲欧美中文字幕在线看| 国产亚洲精品激情都市| 国产成人精品cao在线| 国产精品美女网站在线观看| 国产精品视频免费一区二区| 亚洲愉拍99热成人精品热久久 | 国产精品视频免费观看| 99国产欧美久久久精品蜜芽| 成人伊人精品色XXXX视频| 69国产成人综合久久精品| 国产精品视频第一页| 99精品影院| 久久夜色精品国产|