本篇文章为大家展示了 incr与incrBy如何在redis中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1、Incr 命令
Redis Incr 命令将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
2、Redis Incrby 命令
Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
3、实现按天统计的思路
以你自定义的字符串+当前年月日 作为key ;例:
public static final String BATCH_COMMIT_DAY_COUNT="test:wugui:";
public static String getCurrentDate() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.format(new Date());
}
redisClient.incr(BATCH_COMMIT_DAY_COUNT + DateUtil.getCurrentDate());//redis的key
当然我并没有为这个key用expire设置超时时间,因为我需要保留每天的统计;
incrBy 可以在现有值的基础上累加你的增量值,比如你要在一个批量审核接口里统计每天批量审核的所有人数,例:
redisClient.incrBy(BATCH_COMMIT_DAY_COUNT + DateUtil.getCurrentDate(), 63l);
注意redis的 incrBy 第二个参数是long类型,不是参数名的integer.....
public Long incrBy(final String key, final long integer) {
checkIsInMultiOrPipeline();
client.incrBy(key, integer);
return client.getIntegerReply();
}
4、总结
除了简单计数,还可以实现控制用户单位时间内请求等,可根据业务需求灵活运用;
有兴趣可以参考下这篇文章,简单实用 //www.jb51.net/article/200492.htm
补充知识:redis之incrby、incr、hincrby的使用
一、incrby
1、说明
Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
2、语法
INCRBY KEY_NAME INCR_AMOUNT
二、incr
1、说明
Redis Incr 命令将 key 中储存的数字值增一。
2、语法
INCR KEY_NAME
三、hincrby
1、说明
Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
2、语法
HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER
四、实例
192.168.230.21:6379[8]> incrby value 12
(integer) 12
192.168.230.21:6379[8]> get value
"12"
192.168.230.21:6379[8]> incr value
(integer) 13
192.168.230.21:6379[8]> get value
"13"
192.168.230.21:6379[8]> get value
"13"
192.168.230.21:6379[8]> incr value
(integer) 14
192.168.230.21:6379[8]> get value
"14"
192.168.230.21:6379[8]> incrby value 10
(integer) 24
192.168.230.21:6379[8]> get value
"24"
192.168.230.21:6379[8]> incrby value -5
(integer) 19
192.168.230.21:6379[8]> get value
"19"
192.168.230.21:6379[8]> hincrby mykey myfield 0
(integer) 0
192.168.230.21:6379[8]> hincrby mykey myfield 5
(integer) 5
192.168.230.21:6379[8]> hincrby mykey myfield 7
(integer) 12
192.168.230.21:6379[8]> hincrby mykey myfield01 4
(integer) 4
192.168.230.21:6379[8]> hincrby mykey myfield01 9
(integer) 13
192.168.230.21:6379[8]> hgetall mykey
1) "myfield"
2) "12"
3) "myfield01"
4) "13"
192.168.230.21:6379[8]> hincrby mykey myfield01 -4
(integer) 9
192.168.230.21:6379[8]> hgetall mykey
1) "myfield"
2) "12"
3) "myfield01"
4) "9"
192.168.230.21:6379[8]>
上述内容就是 incr与incrBy如何在redis中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。