利用Redis技术阻止连续点击(redis防止连续点击)
提交
Redis(Remote Dictionary Server)是一个开源的使用 ANSI C 语言编写的支持网络、可基于内存亦可持久化的日志型、NoSQL数据库,具有快速的初存账号加载、高性能读写操作,它提供超过20种数据类型,它处理速度很快而且支持持久性存储等特点。
Redis技术可用来阻止连续点击提交,下面就以一个具体的开发中场景来举例:假如有个发送电子邮件的功能,当用户点击了“发送”按钮,就会发出一封电子邮件,这个功能是很重要的,而且也可能会被滥用,因此需要做出防控措施来阻止用户的连续点击提交。
具体的做法是这样的:Redis服务器可以记录每个用户的点击行为,比如是一小时内点击按钮的次数,然后程序判断该用户的次数是否超过限定的连续点击提交的次数,如果超过则可以提示用户“操作频繁,请稍后重试”之类的消息,以避免其对系统造成不必要的负担。
以下是Java语言实现连续点击提交防护的代码示例:
//1.配置连接Redis
Jedis jedis = new Jedis(“localhost”);
//2.判断当前用户的点击次数,限定在3次之内
String key = “click:user:ml:”+userId;
if(jedis.exists(key)){
int count = Integer.valueOf(jedis.get(key));
if(count >= 3){
//大于3次不允许重复操作
return false;
}
}
//3.将此次点击次数存入Redis
jedis.setex(key, 3600, String.valueOf(count+1));
通过以上代码片段可以看出,利用Redis进行连续点击提交防护是一种非常有效的办法,可以有效避免由于用户操作不当造成数据处理压力过大的问题,为系统正常运行起到了重要的作用。