边学习边应用:用jedis实现消息传递中体现优先级队列的生产者消费者的简单Demo(一)

刚开始使用简书,排版还不熟悉,见谅。

消费者类Consumer

package t2;

import redis.clients.jedis.Jedis;

public class Consumer implements Runnable  {

Jedis jedis = new Jedis("127.0.0.1");

@Override

public void run() {

// TODO Auto-generated method stub

//

for(int i=0;i<6;i++){

System.out.println(jedis.blpop(0,"key1","key2"));} //blpop函数自带阻塞与非阻塞机制,第一个数字表示的是一个指定阻塞的最大秒数的整型值。当 timeout 为 0 是表示阻塞时间无限制。

}

}

生产者类Producer

package t2;

import redis.clients.jedis.Jedis;

public class Producer implements Runnable{

static Jedis jedis = new Jedis("127.0.0.1");

public static void push(String key,String msg){

jedis.rpush(key, msg);

}

public static String getMsg(String tel,String content){

return tel+content;

}

@Override

public void run() {

// TODO Auto-generated method stub

String msg=Producer.getMsg("tel1","验证码1");

Producer.push("key1",msg );

String msg1=Producer.getMsg("tel2","广告1");

Producer.push("key2",msg1 );

String msg2=Producer.getMsg("tel3","验证码2");

Producer.push("key1",msg2 );

String msg3=Producer.getMsg("tel4","验证码3");

Producer.push("key1",msg3 );

String msg4=Producer.getMsg("tel5","广告2");

Producer.push("key2",msg4 );

String msg5=Producer.getMsg("tel6","广告3");

Producer.push("key2",msg5 );

// jedis.del("key1");

//     jedis.del("key2");

}

}

调用两个线程Test类

package t2;

public class Test {

public static void main(String[] args){

Consumer d1=new Consumer();

Producer d2=new Producer();

Thread t1=new Thread(d1);

Thread t2=new Thread(d2);

t1.start();

t2.start();

}

}

新手刚学习Jedis,共同进步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容