社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
INCR 命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。
@PostMapping(value = "/testRedis")
public R testRedis(HttpServletRequest request) {
// 通过用户ID和访问IP,处理重复请求
String key = userId + IPUtils.getIpAddr(request);
Object redisKey = redisTemplate.opsForValue().get(key);
System.out.println("redis值:" + redisKey);
// redis中的key值存在则表示当前这次请求距离上一次请求不超过下面设置的三秒钟,直接返回即可
if(redisKey != null){
return R.ok("您的操作过快,请刷新重试");
}
Long count = redisTemplate.opsForValue().increment(key, 1); // 设置递增因子
System.out.println("递增的值" + count);
redisTemplate.expire(key, 3, TimeUnit.SECONDS); // 设置过期时间 3秒
return R.ok("成功");
}
通过这种方法,同样我们也可以用到并发的情况下
相关文章:SpringBoot整合Redisson使用分布式锁,模拟茅台抢购场景.
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!