提交Redis 拯救重复提交之路(redis防止重复)

当前在Web应用开发中,由于农历算法的实际应用,重复提交是一个经常出现的问题之一,近年来,Redis却可以有效地帮助我们…

当前在Web应用开发中,由于农历算法的实际应用,重复提交是一个经常出现的问题之一,近年来,Redis却可以有效地帮助我们拯救重复提交之路,下面就是Redis应对重复提交的解决方案。

使用Redis拯救重复提交之路的需要较为简单,首先只须要在提交过程中,利用Redis的 单线程特性,实现原子性的数据存储与更新,用来记录此前的提交信息,以此来防止重复提交的产生,这种数据存储可以非常方便的用Redis的哈希数据存储方式完成,如下面的JAVA代码所示:

“`Java

String key = “USER:SUBMITTED:”, userId;

String field = “TIMESTAMP”;

boolean locked = false;

long timeout = 1;

//尝试使用原子操作

do{

locked = redisTemplate.opsForHash().putIfAbsent(key + userId, field, System.currentTimeMillis());

if (locked) {

if (System.currentTimeMillis() – redisTemplate.opsForHash().get(key + userId, field)

{

break;

}

}

}while (locked);

//根据locked的值判断提交的合法性

if (locked)

{

// TODO 此处可以添加提交的业务逻辑

} else {

logger.error(“提交数据重复!”);

}


上面的代码实现了一个基本功能,利用Redis在提交过程中,实现一个涉及到用户ID和提交时间戳的哈希数据存储,这样就可以很容易地实现对重复提交信息的过滤,以上述Java代码为例,提交信息重复时,会跳出do-while循环后locked值为false,从而可以较容易地把重复提交拦截下来。

Redis的解决重复提交的解决方案,在性能上也非常出色,优先使用Redis的原子性操作,使得重复提交的数据校验变得更加方便快捷,而且Redis客户端与服务端之间也可以使用常用的NIO协议,传输数据变得更加稳定快捷。

综上所述,使用Redis拯救重复提交之路,可以有效解决Web应用在农历算法的应用场景下,重复提交的问题,让实际应用变得更加简单快捷,提升Web应用的性能。

香港服务器首选港服(Server.HK),2H2G首月10元开通。
港服(Server.HK)(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

为您推荐

港服(Server.HK)MongoDB教程:MongoDB 索引

MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件...

港服(Server.HK)PostgreSQL教程PostgreSQL 别名

PostgreSQL 别名 我们可以用 SQL 重命名一张表或者一个字段的名称,这个名称就叫着该表或该字段的别名。 创建...

港服(Server.HK)Memcached教程:Memcached stats 命令

Memcached stats 命令 Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号...

港服(Server.HK)Redis教程:Redis 数据类型

Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集...

港服(Server.HK)Redis教程:Redis GEO

Redis GEO Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 ...
返回顶部