12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
建站问答 时间:2024-12-01 19:06:56
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
redis订阅功能可以用于消息的传输,是一种消息通信模式,Redis客户端可以订阅任意数量的频道,具体实现代码:packagecom.hcmony.sword.redis;importorg.apache.commons.lang3.Strin
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
redis订阅功能可以用于消息的传输,是一种消息通信模式,Redis客户端可以订阅任意数量的频道,具体实现代码:
packagecom.hcmony.sword.redis;importorg.apache.commons.lang3.StringUtils;
importredis.clients.jedis.Jedis;
importredis.clients.jedis.JedisPool;
importredis.clients.jedis.JedisPubSub;
/**
*<h3>Shenjue.java基本描述</h3>
*/
publicclassRedisMQ{
privatestaticfinalStringTOPIC="TOPIC";
privatefinalJedisPooljedisPool;
publicRedisMQ(JedisPooljedisPool){
this.jedisPool=jedisPool;
}
/**
*发布消息
*@paramtopic
*@parammessge
*/
publicvoidpublish(Stringtopic,Stringmessge){
Jedisjedis=null;
if(StringUtils.isBlank(topic)){
topic=TOPIC;
}
try{
jedis=jedisPool.getResource();
jedis.publish(topic,messge);
}
finally{
if(null!=jedis){
jedis.close();
}
}
}
/**
*订阅消息
*@paramtopic
*@paramjedisPubSub
*/
publicvoidsubscribe(Stringtopic,JedisPubSubjedisPubSub){
Jedisjedis=null;
if(StringUtils.isBlank(topic)){
topic=TOPIC;
}
try{
jedis=jedisPool.getResource();
jedis.subscribe(jedisPubSub,topic);
}
finally{
if(null!=jedis){
jedis.close();
}
}
}
publicstaticvoidmain(String[]args){
//默认连接本地redis,
//loclhost:6379
JedisPooljedisPool=newJedisPool();
RedisMQpublish=newRedisMQ(jedisPool);
newThread(newRunnable(){
@Override
publicvoidrun(){
publish.subscribe("PID",newMyjedisPubSub());
}
}).start();
for(inti=0;i<100;i++){
publish.publish("PID","messge"+i);
}
}
publicstaticclassMyjedisPubSubextendsJedisPubSub{
@Override
publicvoidonMessage(Stringchannel,Stringmessage){
System.out.println("-------channelis"+channel+"messageis"+message);
}
}
}
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19