注意:redis客户端执行是单线程的,不能将客户端放在外面,内部执行使用多线程的方式。

        // 创建生产端连接
final Jedis jedisProducter = new Jedis(R_HOST, R_PORT);
jedisProducter.auth(R_AUTO); Runnable th1= new Runnable() {
@Override
public void run() {
jedisProducter.lpush(COMMON_KEY_APPLE, "producter2: ");
}
};

以上写法就会出错。除非写在一起。

生产者:

/**
* Redis实现消息队列
* @author DennyZhao
* @date 2018/07/06
*/
public class RedisQueueProducter { private final static String R_HOST="127.0.0.1";
private final static String R_AUTO = "dennyzhao";
private final static int R_PORT = 6380;
private final static String COMMON_KEY_APPLE = "APPLE"; public static void main(String[] args) throws InterruptedException {
// 创建生产端连接
final Jedis jedisProducter = new Jedis(R_HOST, R_PORT);
jedisProducter.auth(R_AUTO); while(true) {
//消费
long lenth = jedisProducter.llen(COMMON_KEY_APPLE);
// 生产
if(lenth < 10) {
System.out.println("库存告急.....");
Random sc = new Random();
jedisProducter.lpush(COMMON_KEY_APPLE, "producter2: " + sc.nextInt(8));
}
Thread.sleep(1000);
}
}
}

消费者:

/**
* Redis实现消息队列
* @author DennyZhao
* @date 2018/07/06
*/
public class RedisQueueCustomer { private final static String R_HOST="127.0.0.1";
private final static String R_AUTO = "dennyzhao";
private final static int R_PORT = 6380;
private final static String COMMON_KEY_APPLE = "APPLE"; public static void main(String[] args) throws InterruptedException { // 创建消费者连接
Jedis jedisCustomer = new Jedis(R_HOST, R_PORT);
jedisCustomer.auth(R_AUTO); while(true) {
//消费
System.out.println(jedisCustomer.blpop(2, COMMON_KEY_APPLE)); Thread.sleep(1000);
}
}
}

Redis简单生产者消费者的更多相关文章

  1. 使用redis实现生产者消费者模式

    本次主要分享一下使用redis做缓存队列,实现生产者消费者模式. 首先先来看一下redis提供的列表操作接口.像ListRightPush就和符合队列先进先出的原则. 然后围绕这个列表已下单为例简要实 ...

  2. Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用

    Java数据结构之---Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在 ...

  3. Kafka 简单实验二(Python实现简单生产者消费者)

    Apache Kafka 是什么? Kafka 是一个开源的分布式流处理平台,其简化了不同数据系统的集成.流指的是一个数据管道,应用能够通过流不断地接收数据.Kafka 作为流处理系统主要有两个用处: ...

  4. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  5. .net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法

    1.多线程简单使用(1)进程是不执行代码的,执行代码的是线程,一个进程默认有一个线程(2)线程默认情况下都是前台线程,要所有的前台线程退出以后程序才会退出,进程里默认的线程我们叫做主线程或者叫做UI线 ...

  6. python_way ,day11 线程,怎么写一个多线程?,队列,生产者消费者模型,线程锁,缓存(memcache,redis)

    python11 1.多线程原理 2.怎么写一个多线程? 3.队列 4.生产者消费者模型 5.线程锁 6.缓存 memcache redis 多线程原理 def f1(arg) print(arg) ...

  7. python JoinableQueue在生产者消费者项目中的简单应用

    class multiprocessing.JoinableQueue([maxsize]) JoinableQueue, a Queue subclass, is a queue which add ...

  8. Python-生成器实现简单的"生产者消费者"模型

    一.使用生成器实现简单的生产者消费者模型, 1.效果截屏 代码如下: import time def consumer(name): print('%s 开始买手机' %name) while Tru ...

  9. 生产者消费者模型及Golang简单实现

    简介:介绍生产者消费者模型,及go简单实现的demo. 一.生产者消费者模型 生产者消费者模型:某个模块(函数等〉负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.协程 ...

随机推荐

  1. 学习笔记之Java

    Java (programming language) - Wikipedia https://en.wikipedia.org/wiki/Java_(programming_language) Ja ...

  2. 廖雪峰Java1-3流程控制-4switch多重选择

    switch语句 根据switch(表达式)跳转到匹配的case结果,继续执行case结果: 的后续语句,遇到break结束执行,没有匹配条件,执行default语句. int i = 3 switc ...

  3. linux采集CPU温度并上传数据到云平台判断是否需要beep

    如果要beep肯定要apt install beep的 但光安装好还不够,需要执行模块加载 /sbin/modprobe pcspkr 再写一个bash脚本 data=$(/usr/bin/senso ...

  4. C++单例模式的实现及举例

    单例模式的概念和用途: 在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便实例个数的控制并节约系统资源. 如果希望在系统中某个类 ...

  5. base_基础

    目录 A B C D E F G H I J K L M N S: Sqlite: 1;orhanobut/hawk; A: Adapter: 图片处理 Android中自定义布局中加载图片Bitma ...

  6. 使用adb安装遇到的一些坑

    1.下载安装android SDK,可通过浏览器或者相关手机软件下载软件下载需要安装的apk安装文件,把apk文件放到android-sdk-windows\platform-tools下 2.可通过 ...

  7. POJ3159 Candies

    #include <iostream> #include <queue> #include <cstring> #define maxn 30005 #define ...

  8. kafka的API操作

    在集群的接收端 启动producer 在consumer这边能接收到producer发来的数据

  9. 微信小程序 - 布局练习

    1.小程序的布局就多了一个flex布局,其他和之前html没太大区别 ,先看代码: (1)wxml <view class='container'> <view class='sel ...

  10. RSA加密解密,String转PublicKey、PrivateKey;附Base64.JAR

    网络请求的数据需要加密,服务器给的他们那一套在Android一直报错,自己写了一个: package com.cc.common.util; import javax.crypto.Cipher; i ...