1、lpush+rpop
采用rpop需要不停调用rpop方法查看list中是否有待处理消息。每调用一次都会发起一次连接,造成不必要浪费
代码:
producer:
package com.eval.mind.service.redis; import java.util.UUID; import java.util.concurrent.TimeUnit; import redis.clients.jedis.Jedis; public class Producer_Lpush extends Thread{ public static final String MESSAGE_KEY = "message:queue"; private Jedis jedis; private String producerName; private volatile int count; public Producer_Lpush(String name) { this.producerName = name; init(); } private void init() { jedis=new Jedis("192.168.80.4",6379); } public void putMessage(String message) { Long size = jedis.lpush(MESSAGE_KEY, message); System.out.println(producerName + ": 当前未被处理消息条数为:" + size); count++; } public int getCount() { return count; } @Override public void run() { try { while (true) { putMessage(UUID.randomUUID().toString()); TimeUnit.SECONDS.sleep(1); } } catch (InterruptedException e) { } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws InterruptedException{ Producer_Lpush producer = new Producer_Lpush("myProducer"); producer.start(); for(; ;) { System.out.println("main : 已存储消息条数:" + producer.getCount()); TimeUnit.SECONDS.sleep(10); } } }