redis计数器,记录某活动使用量

刚刚入行的小白,什么都不太懂,最近某活动要求奖品领取量上限为20万,就想到用redis来实现,代码如下:

代码片段

String redisKey= "Activity";
RedisUtil.setString(keyString, "0");//初始值为0
int countNum = 0;
//每月限量20万,所以每次用户进来都更新一下失效时间,为当月剩余时间
Long hLong = 86400 * getCurrentMonthDay() - DateUtils.getFragmentInSeconds(Calendar.getInstance(), Calendar.MONTH);
int hInt = hLong.intValue();
if (RedisUtil.isExists(keyString)) {countNum = Integer.parseInt(RedisUtil.getString(countKey));if (countNum > 200000) {System.out.println("抱歉,奖品已发放完!");} else {RedisUtil.incr(countKey);RedisUtil.expire(countKey, hInt);//失效时间到月末//业务代码}
}public static int getCurrentMonthDay() {//计算当月天数Calendar a = Calendar.getInstance();a.set(Calendar.DATE, 1);a.roll(Calendar.DATE, -1);int maxDate = a.get(Calendar.DATE);return maxDate;
}

over

redis作为计数器的使用相关推荐

  1. 解决方案:重复抢单(Redis原子计数器incr)

    解决方案:重复抢单 Redis原子计数器incr 关键词 Redis Incr 操作 key(用户信息) 判断value>1 比如秒杀活动:通过对同一时刻请求数量进行了限制,一般用作对后台系统的 ...

  2. Redis实现计数器---接口防刷---升级版(Redis+Lua)

    [前言] Cash Loan(一):Redis实现计数器---接口防刷  中介绍了项目中应用redis来做计数器的实现过程,最近自己看了些关于Redis实现分布式锁的代码后,发现在Redis分布式锁中 ...

  3. 使用redis 作为计数器

    使用redis 作为计数器 我们公司的业务 需要生成订单号大致格式是 kd01 0001 20220701 拼接的订单号 中间的0001是用作计数的 用来判断这是今天第几个单 工具类: package ...

  4. Redis原子计数器incr,防止并发请求

    一.前言 在一些对高并发请求有限制的系统或者功能里,比如说秒杀活动,或者一些网站返回的当前用户过多,请稍后尝试.这些都是通过对同一时刻请求数量进行了限制,一般用作对后台系统的保护,防止系统因为过大的流 ...

  5. java redis计数器_使用Redis原子计数器incr实现限速器功能

    点击上方☝ Java编程技术乐园,轻松关注~ 及时获取有趣有料的 技术文章 做一个积极的人编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 一.前言 在一些对高并发请求有限制的系统或者功能 ...

  6. Redis实现计数器---接口防刷

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 刚刚过去的双十一,大家有没有剁手,紧接着双十二马上又来临:看到全民大抢购的时候,做为一 ...

  7. 利用Redis原子计数器incr实现计数器及接口限流

    一.INCR命令介绍 Redis Incr 命令将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作.且将key的有效时间设置为长 ...

  8. redis 计数器 java_Redis介绍

    什么是Redis Redis是一种开源的内存数据结构,用作数据库.缓存和消息代理.它支持各种不同数据类型的存储,据我们了解,它主要用作缓存内容的一种方式,可以在以后快速高效地检索这些内容,从而减轻数据 ...

  9. java redis 计数器_redis:每天重置计数器

    我希望每天使用Redis重置计数器.我是Redis的新手,所以我想确保我充分了解事务和管道的工作方式. 以下代码是否可以确保在多进程环境中工作时,我总是得到一对唯一的(日期,数字),还是需要使用Red ...

最新文章

  1. android 布局之RelativeLayout(相对布局)
  2. 远程桌面不能用不能连接处理办法
  3. Android 打包流程
  4. c语言中常量有何作用,C语言const的用法详解,C语言常量定义详解
  5. [转帖]真TM长的:SQL Server 2008存储结构——GAM和SGAM、PFS结构、IAM结构、DCMBCM
  6. 有机晶体数据库_Cambridge Structural Database 2017 晶体结构分析软件分享
  7. 马化腾,你就把微信卖给运营商得了
  8. [linux]linux IO 5种方式
  9. 【C++ 开根号和平方运算】
  10. 给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr3,其中 π= 3.1415926。
  11. 无人机倾斜摄影技术在不动产项目中的实际运用
  12. 《林林数据结构笔记》线段树求数组区间和,单点更新,区间更新+lazy思想
  13. elasticsearch--wildcard查询
  14. matlab图片导出无失真库export_fig介绍(半透明效果)
  15. html表格里面怎么合并单元格的快捷键,excel合并单元格快捷键是什么
  16. 虚拟接口和SD-WAN
  17. mysql主从配置duxi_MySQL 8.0主从(Master-Slave)配置
  18. 人民币在岸 离岸 中间价的含义与关系
  19. iptables端口映射详解
  20. Problem - 1696D - CodeforcesD. Permutation Graph

热门文章

  1. adobe 发布 flash 转换成 html5 工具 代号wallaby(沙袋鼠)-as3-javaeye技术网站
  2. 【一元线性回归】理论一镜到底!线性回归大总结——一元线性回归(1)
  3. THE compile of serveral files
  4. Unity3D浅谈Unity5游戏及交互设计的未来
  5. 2023前端面试题及答案整理(JavaScript)
  6. 云闪付小程序 转 微信小程序 ( vue >> mpvue >> wxApplets ) 记录
  7. 【深度学习】用变分自编码器生成图像和生成式对抗网络
  8. CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等
  9. 利用 kubeasz 给 suse 12 部署 kubernetes 1.20.1 集群
  10. 毕业设计 基于stm32的人体健康监护系统 - 单片机 嵌入式 物联网