CN112860452A - 提高高并发情况响应速度的方法、装置及计算机可读介质 - Google Patents
提高高并发情况响应速度的方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN112860452A CN112860452A CN202110140560.7A CN202110140560A CN112860452A CN 112860452 A CN112860452 A CN 112860452A CN 202110140560 A CN202110140560 A CN 202110140560A CN 112860452 A CN112860452 A CN 112860452A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- login
- client
- redis cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了提高高并发情况响应速度的方法、装置及计算机可读介质。方法包括:基于用户的登录请求生成登录码;将登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;校验第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;当第一登录码和第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将目标数据返回给客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向第一客户端推送修改记录。本发明的方案能够提高高并发情况下的响应速度。
Description
技术领域
本发明涉及计算机技术领域,特别涉及提高高并发情况响应速度的方法、装置及计算机可读介质。
背景技术
随着公司业务的发展,常常会出现高并发的情况,比如当大量用户同一时间对网站进行访问的时候,会导致整个系统承受巨大的并发量。
而且当大量并发请求出现的时候,服务器和数据库会因为承受不住巨大的访问压力而直接宕机,无法继续提供服务,造成比较严重的损失。
因此,需要一种方法来提高高并发情况下的响应速度。
发明内容
本发明实施例提供了提高高并发情况响应速度的方法、装置及计算机可读介质,能够提高高并发情况下的响应速度。
第一方面,本发明实施例提供了提高高并发情况响应速度的方法,包括:
基于用户的登录请求生成登录码;
将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;
当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;
当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
优选地,
当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
优选地,
每当用户通过客户端发送登录请求时,记录访问次数加1;
在用户发送登录请求时,判断在当前时间点之前的预设时间间隔内的该用户的访问次数是否超过预设阈值,若是,则拒绝所述登录请求。
优选地,
当用户从第二客户端进行登录时,清除所述第一客户端的cookie中的所述第一登录码;
根据时间戳生成第三登录码,并将所述第三登录码写入所述第二客户端的cookie和所述服务端的redis缓存中。
优选地,
当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
第二方面,本发明实施例提供了基于上述第一方面中任一所述的提高高并发情况响应速度的方法的提高高并发情况响应速度的装置,包括:
生成模块,用于基于用户的登录请求生成登录码;
写入模块,用于将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
校验模块,用于校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
处理模块,用于当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
优选地,
所述处理模块,用于当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
优选地,
所述处理模块,用于当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
第三方面,本发明实施例提供了提高高并发情况响应速度的装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述第一方面中任一所述的方法。
第四方面,本发明实施例提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述第一方面中任一所述的方法。
本发明实施例提供了提高高并发情况响应速度的方法。基于用户的登录请求生成登录码;将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。由此可见,在用户进行访问时,然后将登陆码写入客户端的cookie和服务端的redis缓存中,便于后续对登录码进行校验。校验客户端的第一登录码和第二登录码是否匹配,在通过之后,当操作类型为读操作时,先去redis缓存中查,如果查询到则返回结果,若是写操作,则通过redis缓存进行写入,通过将请求的逻辑判断与数据的写操作分离,结合redis缓存,解决了现有技术中数据库负载过重的问题,并有利于请求的快速响应和反馈,能够提高高并发情况下的响应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的提高高并发情况响应速度的方法的流程图;
图2是本发明一实施例提供的三级缓存的示意图;
图3是本发明一实施例提供的提高高并发情况响应速度的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着公司业务的发展,常常会出现高并发的情况,比如当大量用户同一时间对网站进行访问的时候,会导致整个系统承受巨大的并发量。
而且当大量并发请求出现的时候,服务器和数据库会因为承受不住巨大的访问压力而直接宕机,无法继续提供服务,造成比较严重的损失。高并发是互联网应用的一大特点,也是互联网应用不可避免的一个问题;比如:网购平台的促销互动、春运期间的火车票购买等情况。当大量用户同一时间对网站进行访问的时候,会导致整个系统承受巨大的并发量,就会使得某些比较简单的业务逻辑也会出现很多始料不及的问题。
因此,需要一种方法来提高高并发情况下的响应速度。
下面结合附图对本发明各个实施例提供的提高高并发情况响应速度的方法、装置及计算机可读介质作详细说明。
如图1所示,本发明实施例提供了提高高并发情况响应速度的方法,该方法包括以下步骤:
步骤101:基于用户的登录请求生成登录码;
步骤102:将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
步骤103:校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
步骤104:当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;
步骤105:当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
在本发明实施例中,基于用户的登录请求生成登录码;将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。由此可见,在用户进行访问时,然后将登陆码写入客户端的cookie和服务端的redis缓存中,便于后续对登录码进行校验。校验客户端的第一登录码和第二登录码是否匹配,在通过之后,当操作类型为读操作时,先去redis缓存中查,如果查询到则返回结果,若是写操作,则通过redis缓存进行写入,通过将请求的逻辑判断与数据的写操作分离,结合redis缓存,解决了现有技术中数据库负载过重的问题,并有利于请求的快速响应和反馈,能够提高高并发情况下的响应速度。
在本发明一实施例中,当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
将用户的读操作,也就是查询操作,通过nginx、redis、tomcat三级缓存进行处理,将用户频繁、大量查询的热点数据进行写入缓存,这样在用户进行访问时,直接从内存级别的缓存中读取数据,不用请求持久性数据库如mysql进行查询,大大减轻了数据库的压力。三级缓存的示意图如图2所示,包括nginx缓存201、redis缓存202、tomcat缓存203和mysql数据库204。将成功的写请求请求数据推送给Kafka消息队列。后面异步地消费所述Kafka消息队列中的记录,将成功的请求数据写入数据库,然后通过webSocket传递修改记录给客户端做展示。
具体地,如果是写操作,就要再次进行判断,看和其他线程的竞争中是否获取到了写数据的锁资源,如果获取失败,则认为当前并发量巨大,暂时无法进行写操作,返回失败结果,为了提升用户体验,可以显示“当前系统忙,请重试”。
如果获取到了写数据的锁资源,将请求数据推送给Kafka消息队列,后续操作通过Kafka的异步处理,既提高了响应速度,又减轻了数据库压力。需要说明的是,写操作锁通过人、redis分布式非阻塞锁实现,只尝试一次,不阻塞等待。对于后端所常用的热数据,如基本信息等数据,存储在本地缓存方便多次读取;对于前端所用到的静态资源文件,通过CDN进行服务分发,减轻服务器的负载压力。将逻辑判断与数据写入操作分离,当用户获取写操作锁成功就直接返回成功结果。
在本发明一实施例中,每当用户通过客户端发送登录请求时,记录访问次数加1;
在用户发送登录请求时,判断在当前时间点之前的预设时间间隔内的该用户的访问次数是否超过预设阈值,若是,则拒绝所述登录请求。
具体地,基于用户登录请求生成登录码,并将所述登录码写入客户端cookie和后端redis缓存中;通过校验客户端的登录令牌与服务端存在redis中的登录码是否匹配,若不匹配,则返回操作失败结果,若匹配则判断所述用户的登陆码是否已经过期,过期就是无效,若过期,则返回操作失败结果,若没有过期,则可以进行后面的正常访问操作。这里可以同时记录用户的访问次数,用访问次数所计算的频率与设置的阈值比较进行判断,若是证明是一个普通用户进行操作,若频率太高则有可能是脚本进行操作,应对其进行屏蔽。记录所述用户的访问次数、计算用户的访问频率是否超过了设定的正常阈值,根据这项判断基于所述访问次数做hash生成的登录码是否合法、当登录码不合法时,返回失败的操作结果。
在本发明一实施例中,当用户从第二客户端进行登录时,清除所述第一客户端的cookie中的所述第一登录码;
根据时间戳生成第三登录码,并将所述第三登录码写入所述第二客户端的cookie和所述服务端的redis缓存中。
具体地,校验客户端的第一登录码与服务端的第二登录码是否匹配,若是则进行下一步判断,若否,则直接返回失败的操作结果。该登录码作为用户的唯一登录凭证,每次用户发起登录请求时,服务端都会对该登录码进行校验,判断客户端和服务端存储的是否匹配,若不匹配直接返回操作失败的结果,并给用户重新登陆的提示。这里需要注意的是,若用户从另一个设备登录时,会根据最新的时间戳生成新登录码来覆盖旧的登录码,这时第一客户端cookie中存储的登录码失效,用来保证每个用户只在一台终端设备上进行登录。
在本发明一实施例中,当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
具体地,redis是本发明缓存结构中的核心,因为redis基于内存,并且有合适的底层数据结构存储数据,所以能够承载大量并发请求,redis缓存使用的流程如图一所示:1.当读请求,也就是查询请求过来的时候,先去缓存中查,如果查询到返回结果。2.如果没有的话再去数据库中查,判断数据库中存储的值,如果数据库中是空的话,直接返回。3.如果数据库中值不是空的话,将值写入缓存然后再返回。如前文中所述,本发明使用三层缓存架构,首先在nginx中读取缓存,没有读取到的话去redis中查缓存,如果redis中没有存储需要的数据或者key过期,再到tomcat服务的缓存中读取,如果tomcat中没有的话,最后再去持久性数据库如mysql、oracle中查询,并将查询结果再写进缓存。这样构建起来的nginx+redis+oracle三级缓存结构就可以大大减少数据库的访问次数,降低大量并发下数据库的压力。
综上所述,在上述实施例中,当需要对高并发场景的海量请求进行处理时,首先基于用户登录请求生成登录码,然后将登录码写入客户端cookie和服务端redis缓存中,校验客户端登录令牌与服务端登录令牌是否匹配,若否,则返回登录失败结果,若是,则:判断用户登录令牌是否有效,若否,则返回操作失败结果,若是,则:判断用户是读操作还是写操作,因为读操作可以接受读并发,提高系统的反应速度和吞吐量,读操作的话去三级缓存架构中查询数据。若是写操作,则判断是否获取到修改响应数据的写操作锁,若否,则返回操作失败结果,若是,则:将修改成功的请求数据推送给Kafka消息队列。从客户端端开始对各层级模块进行限流处理,限制单个用户的请求频率,防止脚本控制的恶意请求对系统造成攻击,使用持久化缓存技术,利用Kafka消息队列对模块异步解耦,将请求的逻辑判断与数据的写操作分离,解决了现有技术中数据库负载过重的问题,并有利于请求的快速响应和反馈,能够提高高并发情况下的响应速度。
如图3所示,本发明一实施例提供了6、提高高并发情况响应速度的装置,包括:
生成模块301,用于基于用户的登录请求生成登录码;
写入模块302,用于将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
校验模块303,用于校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
处理模块304,用于当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;
当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
在本发明一实施例中,所述处理模块304,用于当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
在本发明一实施例中,所述处理模块304,用于当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
可以理解的是,本发明实施例示意的结构并不构成对提高高并发情况响应速度的装置的具体限定。在本发明的另一些实施例中,提高高并发情况响应速度的装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明还提供了一种计算机可读介质,存储用于使一计算机执行如本文所述的提高高并发情况响应速度的方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基于上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.提高高并发情况响应速度的方法,其特征在于,包括:
基于用户的登录请求生成登录码;
将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;
当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;
当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
2.根据权利要求1所述的方法,其特征在于,
当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
3.根据权利要求1所述的方法,其特征在于,
每当用户通过客户端发送登录请求时,记录访问次数加1;
在用户发送登录请求时,判断在当前时间点之前的预设时间间隔内的该用户的访问次数是否超过预设阈值,若是,则拒绝所述登录请求。
4.根据权利要求1所述的方法,其特征在于,
当用户从第二客户端进行登录时,清除所述第一客户端的cookie中的所述第一登录码;
根据时间戳生成第三登录码,并将所述第三登录码写入所述第二客户端的cookie和所述服务端的redis缓存中。
5.根据权利要求1-4中任一所述的方法,其特征在于,
当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
6.基于权利要求1-5中任一所述的提高高并发情况响应速度的方法的提高高并发情况响应速度的装置,其特征在于,包括:
生成模块,用于基于用户的登录请求生成登录码;
写入模块,用于将所述登录码分别写入用户当前使用的第一客户端的cookie和服务端的redis缓存中;
校验模块,用于校验所述第一客户端cookie中的第一登录码和服务端redis缓存中的第二登录码是否匹配;
处理模块,用于当所述第一登录码和所述第二登录码匹配时,确定用户的操作类型为读操作或写操作;当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若是,则将所述目标数据返回给所述客户端;当操作类型为写操作时,判断用户是否具有写操作的权限;若是,将用户请求写入的第二数据推送给消息队列中依次写入到redis缓存中;在写入完成后向所述第一客户端推送修改记录。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块,用于当操作类型为读操作时,对用户当前的线程进行共享并锁定其他线程的写操作;
当其他用户查询所述第一数据时,通过共享的线程从缓存中获取所述第一数据;
当操作类型为写操作时,判断其他线程的写操作是否已被锁定,若是,则返回操作失败的信息。
8.根据权利要求1-7中任一所述的装置,其特征在于,
所述处理模块,用于当操作类型为读操作时,判断redis缓存中是否有用户请求读取的第一数据,若否,判断数据库中是否包括所述第一数据,若是,将所述第一数据写入到redis缓存中,若否,返回操作失败的信息。
9.提高高并发情况响应速度的装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至5中任一所述的方法。
10.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110140560.7A CN112860452A (zh) | 2021-02-02 | 2021-02-02 | 提高高并发情况响应速度的方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110140560.7A CN112860452A (zh) | 2021-02-02 | 2021-02-02 | 提高高并发情况响应速度的方法、装置及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860452A true CN112860452A (zh) | 2021-05-28 |
Family
ID=75986077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110140560.7A Pending CN112860452A (zh) | 2021-02-02 | 2021-02-02 | 提高高并发情况响应速度的方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860452A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722362A (zh) * | 2021-07-27 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种基于远端的缓存数据查询方法、装置及系统 |
CN113722389A (zh) * | 2021-09-02 | 2021-11-30 | 北京百度网讯科技有限公司 | 数据管理方法、装置、电子设备及计算机可读存储介质 |
CN114971689A (zh) * | 2022-04-26 | 2022-08-30 | 北京百度网讯科技有限公司 | 任务处理方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908649B1 (en) * | 2005-09-20 | 2011-03-15 | Netapp, Inc. | Method and apparatus for providing efficient authorization services in a web cache |
CN108418821A (zh) * | 2018-03-06 | 2018-08-17 | 北京焦点新干线信息技术有限公司 | 基于Redis与Kafka的线上抢购系统高并发场景处理方法及装置 |
CN111343145A (zh) * | 2020-02-03 | 2020-06-26 | 山东爱城市网信息技术有限公司 | 一种基于Redis的单点登录方法及装置 |
CN111431920A (zh) * | 2020-03-31 | 2020-07-17 | 中国建设银行股份有限公司 | 一种基于动态令牌的安全控制方法及系统 |
CN111447220A (zh) * | 2020-03-26 | 2020-07-24 | 金蝶软件(中国)有限公司 | 认证信息管理方法、应用系统的服务端及计算机存储介质 |
-
2021
- 2021-02-02 CN CN202110140560.7A patent/CN112860452A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908649B1 (en) * | 2005-09-20 | 2011-03-15 | Netapp, Inc. | Method and apparatus for providing efficient authorization services in a web cache |
CN108418821A (zh) * | 2018-03-06 | 2018-08-17 | 北京焦点新干线信息技术有限公司 | 基于Redis与Kafka的线上抢购系统高并发场景处理方法及装置 |
CN111343145A (zh) * | 2020-02-03 | 2020-06-26 | 山东爱城市网信息技术有限公司 | 一种基于Redis的单点登录方法及装置 |
CN111447220A (zh) * | 2020-03-26 | 2020-07-24 | 金蝶软件(中国)有限公司 | 认证信息管理方法、应用系统的服务端及计算机存储介质 |
CN111431920A (zh) * | 2020-03-31 | 2020-07-17 | 中国建设银行股份有限公司 | 一种基于动态令牌的安全控制方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722362A (zh) * | 2021-07-27 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种基于远端的缓存数据查询方法、装置及系统 |
CN113722362B (zh) * | 2021-07-27 | 2023-08-11 | 苏州浪潮智能科技有限公司 | 一种基于远端的缓存数据查询方法、装置及系统 |
CN113722389A (zh) * | 2021-09-02 | 2021-11-30 | 北京百度网讯科技有限公司 | 数据管理方法、装置、电子设备及计算机可读存储介质 |
CN113722389B (zh) * | 2021-09-02 | 2024-03-01 | 北京百度网讯科技有限公司 | 数据管理方法、装置、电子设备及计算机可读存储介质 |
CN114971689A (zh) * | 2022-04-26 | 2022-08-30 | 北京百度网讯科技有限公司 | 任务处理方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860452A (zh) | 提高高并发情况响应速度的方法、装置及计算机可读介质 | |
CN110495132B (zh) | 用于在分布式网络节点内生成、上传和执行代码区块的系统和方法 | |
JP4039632B2 (ja) | 認証システム、サーバおよび認証方法並びにプログラム | |
CN103685308B (zh) | 一种钓鱼网页的检测方法及系统、客户端、服务器 | |
US20210109917A1 (en) | System and Method for Processing a Database Query | |
EP4161012A1 (en) | Authentication method and apparatus, electronic device, server, program, and storage medium | |
CN110519240B (zh) | 一种单点登录方法、装置及系统 | |
US20110099607A1 (en) | Method of authenticating and branding emails and other messages using information available in a message list | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
US20200301944A1 (en) | Method and apparatus for storing off-chain data | |
CN111815454B (zh) | 数据上链方法及装置、电子设备、存储介质 | |
CN105337735A (zh) | 数字证书处理及校验的方法和装置 | |
CN112818325A (zh) | 一种基于应用实现api网关独立鉴权的方法 | |
CN112118269A (zh) | 一种身份认证方法、系统、计算设备及可读存储介质 | |
CN108234122B (zh) | 令牌校验方法和装置 | |
CN113760976A (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN111913913B (zh) | 访问请求的处理方法和装置 | |
CN114915500B (zh) | 基于pc桌面客户端的自媒体账号管理方法及装置 | |
CN114928452B (zh) | 访问请求验证方法、装置、存储介质及服务器 | |
CN116010926A (zh) | 登陆认证方法、装置、计算机设备和存储介质 | |
CN111179524B (zh) | Atm机吞卡取回方法及装置 | |
CN113630363B (zh) | 分布式令牌鉴权方法、存储介质 | |
US20160196331A1 (en) | Reconstitution order of entity evaluations | |
CN112491931A (zh) | 一种基于jwt的用户认证的限流方法及装置 | |
CN111953698A (zh) | 基于量子计算云平台的接口安全访问方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210528 |