redis作为计数器的使用
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作为计数器的使用相关推荐
- 解决方案:重复抢单(Redis原子计数器incr)
解决方案:重复抢单 Redis原子计数器incr 关键词 Redis Incr 操作 key(用户信息) 判断value>1 比如秒杀活动:通过对同一时刻请求数量进行了限制,一般用作对后台系统的 ...
- Redis实现计数器---接口防刷---升级版(Redis+Lua)
[前言] Cash Loan(一):Redis实现计数器---接口防刷 中介绍了项目中应用redis来做计数器的实现过程,最近自己看了些关于Redis实现分布式锁的代码后,发现在Redis分布式锁中 ...
- 使用redis 作为计数器
使用redis 作为计数器 我们公司的业务 需要生成订单号大致格式是 kd01 0001 20220701 拼接的订单号 中间的0001是用作计数的 用来判断这是今天第几个单 工具类: package ...
- Redis原子计数器incr,防止并发请求
一.前言 在一些对高并发请求有限制的系统或者功能里,比如说秒杀活动,或者一些网站返回的当前用户过多,请稍后尝试.这些都是通过对同一时刻请求数量进行了限制,一般用作对后台系统的保护,防止系统因为过大的流 ...
- java redis计数器_使用Redis原子计数器incr实现限速器功能
点击上方☝ Java编程技术乐园,轻松关注~ 及时获取有趣有料的 技术文章 做一个积极的人编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 一.前言 在一些对高并发请求有限制的系统或者功能 ...
- Redis实现计数器---接口防刷
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 刚刚过去的双十一,大家有没有剁手,紧接着双十二马上又来临:看到全民大抢购的时候,做为一 ...
- 利用Redis原子计数器incr实现计数器及接口限流
一.INCR命令介绍 Redis Incr 命令将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作.且将key的有效时间设置为长 ...
- redis 计数器 java_Redis介绍
什么是Redis Redis是一种开源的内存数据结构,用作数据库.缓存和消息代理.它支持各种不同数据类型的存储,据我们了解,它主要用作缓存内容的一种方式,可以在以后快速高效地检索这些内容,从而减轻数据 ...
- java redis 计数器_redis:每天重置计数器
我希望每天使用Redis重置计数器.我是Redis的新手,所以我想确保我充分了解事务和管道的工作方式. 以下代码是否可以确保在多进程环境中工作时,我总是得到一对唯一的(日期,数字),还是需要使用Red ...
最新文章
- android 布局之RelativeLayout(相对布局)
- 远程桌面不能用不能连接处理办法
- Android 打包流程
- c语言中常量有何作用,C语言const的用法详解,C语言常量定义详解
- [转帖]真TM长的:SQL Server 2008存储结构——GAM和SGAM、PFS结构、IAM结构、DCMBCM
- 有机晶体数据库_Cambridge Structural Database 2017 晶体结构分析软件分享
- 马化腾,你就把微信卖给运营商得了
- [linux]linux IO 5种方式
- 【C++ 开根号和平方运算】
- 给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr3,其中 π= 3.1415926。
- 无人机倾斜摄影技术在不动产项目中的实际运用
- 《林林数据结构笔记》线段树求数组区间和,单点更新,区间更新+lazy思想
- elasticsearch--wildcard查询
- matlab图片导出无失真库export_fig介绍(半透明效果)
- html表格里面怎么合并单元格的快捷键,excel合并单元格快捷键是什么
- 虚拟接口和SD-WAN
- mysql主从配置duxi_MySQL 8.0主从(Master-Slave)配置
- 人民币在岸 离岸 中间价的含义与关系
- iptables端口映射详解
- Problem - 1696D - CodeforcesD. Permutation Graph
热门文章
- adobe 发布 flash 转换成 html5 工具 代号wallaby(沙袋鼠)-as3-javaeye技术网站
- 【一元线性回归】理论一镜到底!线性回归大总结——一元线性回归(1)
- THE compile of serveral files
- Unity3D浅谈Unity5游戏及交互设计的未来
- 2023前端面试题及答案整理(JavaScript)
- 云闪付小程序 转 微信小程序 ( vue >> mpvue >> wxApplets ) 记录
- 【深度学习】用变分自编码器生成图像和生成式对抗网络
- CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等
- 利用 kubeasz 给 suse 12 部署 kubernetes 1.20.1 集群
- 毕业设计 基于stm32的人体健康监护系统 - 单片机 嵌入式 物联网