redis mysql 原子计数器_使用redis的increment()方法实现计数器功能案例

本文介绍了如何利用Redis的increment()方法来创建一个原子计数器,适用于限制用户每日扫码次数等场景。在实践中遇到的问题是redisTemplate和stringRedisTemplate混用导致的错误,统一模板后功能正常。此外,还简要讨论了Redis的基本概念、工作模式、数据类型和事务,并提供了实际应用示例,如锁、事件队列和抽奖限额管理。
摘要由CSDN通过智能技术生成

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

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

首先设置key:

abc4c7e2ca03011c36963aff6f6e0d58.png

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

设置key的过期时间:

01005adb1cfc2c8102110a6cc079c358.png

实现计数器功能:

a3c89c39ea2559827765b1e496338979.png

3973548fa4ba68e71dc7dc4331fef084.png

af6cfc1a918dbc860797e313f94cf735.png

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

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

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

后来发现当时我使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值