博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用redis的increment()方法实现计数器功能
阅读量:3949 次
发布时间:2019-05-24

本文共 703 字,大约阅读时间需要 2 分钟。

一直知道redis可以用来实现计数器功能,但是之前没有实际使用过,昨天碰到一个需求:用户扫码当天达到20次即提示:当日扫码次数达到上限! 

当时就想到使用redis的递增方法increment()来实现计数器功能,一定要注意redisTemplatestringRedisTemplate的使用

首先设置key:

该key我使用了用户id和当天日期作为key的一部分,date:xxxx-xx-xx格式,这样一来该用户在第二天扫码的时候又是一个新key,因为日期不同了

设置key的过期时间:

 

实现计数器功能:

通过使用上面的方法,redis的计数器功能就可以实现了。

在使用过程过遇到的问题:

在使用的过程中,老是会抛错:ERR value is not an integer or out of range

后来发现当时我使用的方法底层用的redisTemplatestringRedisTemplate串了,当时setKey的时候用的方法底层是

stringRedisTemplate,后面我想get(key)的时候方法底层的模板使用的是redisTemplate,后面统一了一下模板的使用,然后计数

器功能正常运行不再抛错。

看过很多文章说是序列化器的锅,increment方法必须是stringRedisTemplate模板才能使用,但是我在实际使用的时候也确实是

用了redisTemplate,这个具体原因我还在看,此次使用中最主要的问题是setKey的时候使用的模板和取key的时候使用的模板不

一致导致的。写个笔记记录一下,一个坑不踩第二遍。大家如果遇到一样的问题可以一起讨论学习一下。

 

 

 

转载地址:http://qchwi.baihongyu.com/

你可能感兴趣的文章
在职找工作的宜与忌
查看>>
低迷时,谁在坚持CSR
查看>>
致谢指南
查看>>
领导转型:六个方式帮助你建立好的团队
查看>>
从员工到总监,你要明白的8个道理
查看>>
领导不可不知的十大管理定律
查看>>
如何分析Email模块接收、发送邮件失败的Log
查看>>
GPS如何进入省电模式
查看>>
GPS打开失败
查看>>
如何增加电量显示格数,并提示剩余电量?
查看>>
Key Launcher上底下的shortcut如何修改默认值以及如果修改Key Launcher上widget的默认显示顺序
查看>>
Java支持播放哪些multi media格式
查看>>
Audio播放完毕后设置时间无法正确获取
查看>>
打开了一个size不为零的文件,读取到的值却为零的一种分析和解决方法
查看>>
Aplix VM安装Java应用在main menu上不能显示自己的图标,而是显示一朵小花的解决方法
查看>>
Aplix VM安装第一个Java应用在main menu上看不到图标的解决方法
查看>>
java 在cosmos下修改设置,提示“setting are not modifiable”的解释
查看>>
JAD中常见字段的介绍。
查看>>
对于SIM menu update by OTA的解释
查看>>
如何去掉OTA provisioning的PIN码验证
查看>>