情景:一个活动,双11给成功购物的前11111名旅客发放优惠券。

Redies里存放一个List -> 1111个数据;

生成购物订单时

Long sum = jedis.llen("activity");

若List中有数据sum>0,则String card_code = jedis.rpop("activity");

代码如下:

 public Map<String, String> checkStock() {Map<String,String> resMap=new HashMap<String, String>();Jedis jedis=null;try {jedis = RedisUtil.getJedis();Long sum = jedis.llen("activity");if (sum>0) {String card_code = jedis.rpop("activity");resMap.put("code", "00000000");resMap.put("card_code", card_code);}else {resMap.put("code", "00000001");}} catch (Exception e) {logger.info("查询优惠券是否有库存时报错");resMap.put("code", "00000001");}finally{if (jedis!=null) {RedisUtil.release(jedis);}return resMap;}}

取消订单时优惠券秒杀活动号放回缓存

jedis.lpush("activity", card_code);

代码如下:

 public void pushToRedis(String card_code) {Jedis jedis = RedisUtil.getJedis();try {jedis.lpush("activity", card_code);logger.info("将优惠券:"+card_code+"push回redis成功");RedisUtil.release(jedis);} catch (Exception e) {logger.info("将优惠券:"+card_code+"push回redis失败");RedisUtil.release(jedis);}}

Util代码:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;public final class RedisUtil {//Redis服务器IPprivate static String ADDR = "127.0.0.1";//Redis的端口号private static int PORT = 6379;//访问密码private static String AUTH = "123456";//可用连接实例的最大数目,默认值为8;//如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。private static int MAX_ACTIVE = 1024;//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。private static int MAX_IDLE = 200;//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;//Redis.MAX_WAIT=10000//Redis.TIMEOUT=10000private static int MAX_WAIT = 10000;private static int TIMEOUT = 10000;//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;private static boolean TEST_ON_BORROW = true;private static JedisPool jedisPool = null;/*** 初始化Redis连接池*/static {try {JedisPoolConfig config = new JedisPoolConfig();config.setMaxActive(MAX_ACTIVE);config.setMaxIdle(MAX_IDLE);config.setMaxWait(MAX_WAIT);config.setTestOnBorrow(TEST_ON_BORROW);jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);} catch (Exception e) {e.printStackTrace();}}/*** 获取Jedis实例* @return*/public synchronized static Jedis getJedis() {try {if (jedisPool != null) {Jedis resource = jedisPool.getResource();return resource;} else {return null;}} catch (Exception e) {e.printStackTrace();return null;}}/*** 释放jedis资源* @param jedis*/public static void release(final Jedis jedis) {if (jedis != null) {jedisPool.returnResource(jedis);}}public static void main(String[] args){Jedis jedis = RedisUtil.getJedis();System.out.println(jedis.getDB());jedis.set("ceshi","dafdsf");String value  =  jedis.get("ceshi");System.out.print(value);RedisUtil.release (jedis);}
}

希望对你有帮助,祝你有一个好心情,加油!

若有错误、不全、可优化的点,欢迎纠正与补充!

Redies应用计数相关推荐

  1. 微机原理—定时计数控制接口

    别看题目很高深,其实就是很简单的定时器和计数器而已. 通常用手机定个闹钟,就是定时器的使用. 工厂里通过传送带上安装传感器,传感器传输给计算机的信号用来计数. 这是一些很简单的应用,通过很小的一个芯片 ...

  2. nvGRAPH三角形计数和遍历示例

    nvGRAPH三角形计数和遍历示例 #include " stdlib.h" #include" inttypes.h" #include" stdi ...

  3. hdu5701-中位数计数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5701 题目: Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个 ...

  4. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2343  Solved: 1266 [Submit][Status][Discuss] Descrip ...

  5. 计数排序之python

    计数排序( Count sort) 一个不需要比较的,类似于桶排序的线性时间排序算法.该算法是对已知数量范围的数组进行排序.其时间复杂度为O(n),适用于小范围集合或重复元素多的排序.计数排序是用来排 ...

  6. bzoj 1211 [HNOI2004]树的计数

    [HNOI2004]树的计数 Description 一个有n个结点的树,设它的结点分别为v1, v2, -, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, ...

  7. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  8. linux输出指定数量脉冲,ESM335x Linux输出脉冲计数

    关键词:Linux,脉冲计数,ESM335x 作者:emtronix 摘要:ESM335X具有4路PWM输出,其中PWM1和PWM2除了可以用于产生标准的PWM信号,现已支持输出脉冲计数功能,可以在应 ...

  9. 基于YOLO的手部检测和计数实现(课程设计,训练和测试)(1)

    基于YOLO的手部检测和计数实现(课程设计)支持YOLOV3和YOLOV3-TINY 训练测试代码.数据集.测试视频下载地址:下载地址 环境要求: * Python 3.7 * PyTorch > ...

最新文章

  1. C语言字符串大小写转换_只愿与一人十指紧扣_新浪博客
  2. UNIX再学习 -- 信号处理
  3. JAVA设计模式--辛格尔顿
  4. SAP C4C,CRM和S4HANA的Saved Query使用介绍
  5. 你只是看起来很努力_我的方法在这方面看起来很大吗?
  6. git命令:修改已经commit的注释
  7. 怎样清除手机中的html文件夹,怎么彻底清除手机APP卸载后的残留文件夹 能删与不能删文件名...
  8. 用python + openpyxl处理excel(07+)文档 + 一些中文处理的技巧
  9. linux发包密码,linux下网络发包工具(cp过来的)
  10. python list remove_python list有关remove的问题
  11. ng机器学习视频笔记(十三) ——异常检测与高斯密度估计
  12. 滚动效果--marquee的使用
  13. 《你必须知道的.NET》--简易不简单:认识枚举(Ⅲ)
  14. 一块神奇的树莓派电子板竟让我学会了Linux系统
  15. C#算法练习,求e,求π
  16. 计算机电路电子技术试题答案,数字电子技术试题库及答案解析知识分享
  17. Springboot入门到精通(超详细文档)
  18. Android 录屏+录音,原生代码,无需root权限,好用更好懂
  19. The Dominant Color (20)
  20. 对整个网页进行长截图

热门文章

  1. HDU 1166 (树状数组入门)
  2. Linux 条件变量详解
  3. java 矩阵求秩_线性代数精华3——矩阵的初等变换与矩阵的秩
  4. 126邮箱设置html发送邮件,126邮箱设置pop3
  5. 用Python打造属于你的贾维斯
  6. Selenium的安装与卸载
  7. 实验四 房屋价格预测
  8. jsp员工管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  9. iconfont-阿里图标库 的使用
  10. 常见的数据库的配置文件