CN107329963B - 加速网页访问的方法和装置 - Google Patents
加速网页访问的方法和装置 Download PDFInfo
- Publication number
- CN107329963B CN107329963B CN201610282725.3A CN201610282725A CN107329963B CN 107329963 B CN107329963 B CN 107329963B CN 201610282725 A CN201610282725 A CN 201610282725A CN 107329963 B CN107329963 B CN 107329963B
- Authority
- CN
- China
- Prior art keywords
- response
- message digest
- cache
- cache database
- message
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了加速网页访问的方法和装置。所述方法的一具体实施方式包括:获取网页访问请求中统一资源定位符的消息摘要;判断消息摘要是否存在于本地存储消息摘要‑空键值对的第一缓存数据库中;若存在,从本地存储消息摘要‑响应键值对的第二缓存数据库中获取匹配消息摘要的第一响应;向用户端发送第一响应。该实施方式利用本地第一缓存数据库中的消息摘要‑空键值对快速确定本地第二缓存数据库中是否存在响应,同时减少了需要通过网络传输获取的缓存的响应,提高了向用户提供响应的速度。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及加速网页访问的方法和装置。
背景技术
随着互联网的发展,网站服务的响应速度也越来越受到用户的重视。为了提高网站服务的响应速度,目前通常的做法是建立分布式缓存(Memcache)或分布式缓存(Redis),当网站服务器接收的用户请求过多无法完全响应时,可以在上述的Memcache或Redis中获取缓存数据中的响应返给用户端。
然而,现有的分布式缓存Memcache或分布式缓存Redis,需要通过网络传输获取缓存的响应,向用户提供响应的速度较慢。
发明内容
本申请的目的在于提出一种改进的加速网页访问的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种基于服务器(Nginx)的加速网页访问的方法,所述方法包括:获取网页访问请求中统一资源定位符的消息摘要;判断所述消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;若存在,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应;向用户端发送所述第一响应。
在一些实施例中,所述方法还包括:若不存在,向网站服务器发送所述网页访问请求;判断在预定时间内是否从网站服务器接收到对所述网页访问请求的第二响应;若是,向所述用户端发送所述第二响应,将所述消息摘要和空值添加至所述第一缓存数据库并配置数据的失效时间,并将所述消息摘要和所述第二响应添加至所述第二缓存数据库。
在一些实施例中,所述方法还包括:若否,查询所述消息摘要是否存在于第二缓存数据库中对应所述失效时间之前的缓存数据中;响应于存在,从对应所述失效时间之前的缓存数据中获取匹配所述消息摘要的第三响应;向用户端发送所述第三响应。
在一些实施例中,所述方法还包括:响应于所述消息摘要不存在于第二缓存数据库中对应所述失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配所述消息摘要的第四响应;向所述用户端发送所述第四响应。
在一些实施例中,所述第二缓存数据库包括:首页缓存数据库和其它页缓存数据库;所述从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应包括:响应于所述统一资源定位符的参数指向所述网站服务器的首页,从所述首页缓存数据库中获取匹配所述消息摘要的响应;响应于所述统一资源定位符的参数未指向所述网站服务器的首页,从所述其它页缓存数据库中获取匹配所述消息摘要的响应。
在一些实施例中,所述首页缓存数据库包括根据消息摘要划分的多个首页缓存数据池,所述其它页缓存数据库包括根据消息摘要划分的多个其它页缓存数据池;所述从首页缓存数据库中获取匹配所述消息摘要的响应包括:从所述消息摘要所属的首页缓存数据池中获取匹配所述消息摘要的响应;所述从其它页缓存数据库中获取匹配所述消息摘要的响应包括:从所述消息摘要所属的其它页缓存数据池中获取对应所述消息摘要的响应。
在一些实施例中,所述方法还包括:响应于所述消息摘要不存在于所述Redis缓存数据库中,从首页缓存数据库中获取第五响应;向用户端发送所述第五响应。
在一些实施例中,所述方法还包括:采用近期最少使用算法(Least RecentlyUsed,缩写为LRU)清理所述第二缓存数据库中的缓存数据。
在一些实施例中,所述从网页访问请求中获取统一资源定位符的消息摘要包括:过滤所述统一资源定位符的参数中的非预设参数,得到过滤后的统一资源定位符参数;排序所述过滤后的统一资源定位符参数,得到排序后的统一资源定位符参数;使用消息摘要算法对所述排序后的统一资源定位符参数进行计算,得到所述消息摘要。
第二方面,本申请提供了一种基于服务器Nginx的加速网页访问的装置,所述装置包括:消息摘要获取模块,用于获取网页访问请求中统一资源定位符的消息摘要;缓存数据判断模块,用于判断所述消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;第一响应获取模块,用于若所述消息摘要存在于本地存储消息摘要-空键值对的第一缓存数据库中,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应;第一响应发送模块,用于向用户端发送所述第一响应。
在一些实施例中,所述装置还包括:访问请求发送模块,用于若所述消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,向网站服务器发送所述网页访问请求;接受响应判断模块,用于判断在预定时间内是否从网站服务器接收到对所述网页访问请求的第二响应;第二响应发送模块,用于若在预定时间内从网站服务器接收到对所述网页访问请求的第二响应,向所述用户端发送所述第二响应,将所述消息摘要和空值添加至所述第一缓存数据库并配置数据的失效时间,并将所述消息摘要和所述第二响应添加至所述第二缓存数据库。
在一些实施例中,所述装置还包括:消息摘要查询模块,用于若在预定时间内未从网站服务器接收到对所述网页访问请求的第二响应,查询所述消息摘要是否存在于第二缓存数据库中对应所述失效时间之前的缓存数据中;第三响应获取模块,用于响应于所述消息摘要存在于第二缓存数据库中对应所述失效时间之前的缓存数据中,从对应所述失效时间之前的缓存数据中获取匹配所述消息摘要的第三响应;第三响应发送模块,用于向用户端发送所述第三响应。
在一些实施例中,所述装置还包括:第四响应获取模块,用于响应于所述消息摘要不存在于第二缓存数据库中对应所述失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配所述消息摘要的第四响应;第四响应发送模块,用于向所述用户端发送所述第四响应。
本申请提供的加速网页访问的方法和装置,通过获取网页访问请求中统一资源定位符的消息摘要,之后判断消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中,若存在,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应,之后向用户端发送所述第一响应,从而利用本地第一缓存数据库中的消息摘要-空键值对快速确定本地第二缓存数据库中是否存在响应,同时减少了需要通过网络传输获取的缓存的响应,提高了向用户提供响应的速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的加速网页访问的方法的一个实施例的流程图;
图3a是根据本申请的加速网页访问的方法的一个应用场景的示意图;
图3b是根据本申请的加速网页访问的方法的又一个应用场景的示意图;
图4是根据本申请的加速网页访问的装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的加速网页访问的方法或加速网页访问的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102、103通过网络104与服务器105、106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页访问的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是代理服务器106向网络中的终端设备101、102、103提供各种服务的服务器,例如对终端设备101、102、103上显示的网页提供支持的反向代理服务器。服务器106可以是后台网站服务器,可以对接收到的网页页面请求等数据进行分析等处理,并将处理结果(例如网页页面数据)反馈给反向代理服务器105。
需要说明的是,本申请实施例所提供的加速网页访问的方法一般由服务器105执行,相应地,加速网页访问的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的加速网页访问的方法的一个实施例的流程200。所述的加速网页访问的方法,包括以下步骤:
步骤201,获取网页访问请求中统一资源定位符的消息摘要。
在本实施例中,加速网页访问的方法运行于其上的电子设备(例如图1所示的服务器105)可以通过有线连接方式或者无线连接方式从用户利用其进行网页访问的终端接收网页访问请求,其中,上述网页访问请求包括了用户期望浏览的网页的地址,即网址。实践中,网址一般由统一资源定位符(Uniform Resource Locator,URL)来表示。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
通常,用户利用终端上安装的网页浏览器来浏览网页,这时,用户可以通过直接输入网址或者点击网页浏览器中呈现的网页中的链接来向网站服务器发起网页访问请求。在本实施例中,上述网页可以包括html格式、xhtml格式、asp格式、php格式、jsp格式、shtml格式、nsp格式、xml格式的网页或者其它未来将开发的格式的网页(只要这种格式的网页文件可以用浏览器打开并浏览其包含的图片、动画、文字等内容)。
上述获取统一资源定位符的消息摘要,是一个唯一对应一个统一资源定位符的固定长度的值,它由一个哈希(HASH)函数对统一资源定位符进行作用而产生。如果统一资源定位符在途中改变了,则接收者通过对收到统一资源定位符的新产生的摘要与原摘要比较,就可知道统一资源定位符是否被改变了。因此统一资源定位符的消息摘要保证了统一资源定位符的完整性。消息摘要采用消息摘要算法将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这里的哈希函数,可以包括消息摘要算法、安全散列算法和原始完整性校验消息摘要算法等,例如消息摘要算法第二版(MD2)、消息摘要算法第四版(MD4)、消息摘要算法第五版(MD5)、安全散列算法-1(SHA-1)、安全散列算法-256(SHA-256)、RACE原始完整性校验消息摘要算法-128(RIPEMD128)、RACE原始完整性校验消息摘要算法-160(RIPEMD160)等。
在本实施例的一些可选实现方式中,上述从网页访问请求中获取统一资源定位符的消息摘要可以包括:过滤统一资源定位符的参数中的非预设参数,得到过滤后的统一资源定位符参数;排序过滤后的统一资源定位符参数,得到排序后的统一资源定位符参数;使用消息摘要算法对排序后的统一资源定位符参数进行计算,得到消息摘要。在这里,通过过滤统一资源定位符的参数中的非预设参数,丢弃了URL中多余的非预设参数以简化消息摘要,排序过滤后的统一资源定位符参数,则提高了消息摘要的安全性。
步骤202,判断消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中。
在本实施例中,基于步骤201中获取的消息摘要,上述电子设备(例如图1所示的服务器105)可以首先判断消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中。在这里,第一缓存数据库为Nginx服务器的本地缓存数据库,若Nginx服务器向网页服务器发送网页访问请求返回了响应,就会将该消息摘要和空值添加至第一缓存数据库,并将消息摘要和返回的响应添加至第二缓存数据库。此时第一缓存数据库也即第二缓存数据库的索引数据库,若第一缓存数据库中存在消息摘要,则与该消息摘要对应的响应必然存在于第二缓存数据库中。
为了进一步的提高第一缓存数据库中缓存数据的检索速度,第一缓存数据库库中可以仅存储当前最新的数据,示例性的,可以在消息摘要-空键值对存入第一缓存数据库中时指定缓存数据的失效时间,例如在第一缓存数据库的配置文件中指定缓存数据的失效时间。
步骤203,若存在,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配消息摘要的第一响应。
在本实施例中,基于服务器Nginx的加速网页访问的方法运行于其上的电子设备上可以预先存储Nginx服务器向网页服务器发送网页访问请求返回的响应,这些返回的响应可以存储于本地的第二缓存数据库中(例如存储于HttpLuaModule模块的shared dict中),以消息摘要-响应的方式存储,对应存储于第一缓存数据库中的当前最新(失效时间内)的消息摘要,以便以第一缓存数据库中的消息摘要作为第二缓存数据库中当前最新数据的索引,从而提高检索速度。
在本实施例的一些可选实现方式中,第二缓存数据库可以包括:首页缓存数据库和其它页缓存数据库;从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配消息摘要的第一响应包括:响应于统一资源定位符的参数指向网站服务器的首页,从首页缓存数据库中获取匹配消息摘要的响应;响应于统一资源定位符的参数未指向网站服务器的首页,从其它页缓存数据库中获取匹配消息摘要的响应。
在这里,将第二缓存数据库分为了首页缓存数据库和其它页缓存数据库,当统一资源定位符的参数指向网站服务器的首页时,可以去首页缓存数据库获取缓存数据,当统一资源定位符的参数指向网站服务器的其它页时,可以去其它页缓存数据库获取缓存数据,提高了获取的并发数,加速了数据获取的速度。同时,需要注意的是,首页缓存数据库是从首页菜单直接进入的页面的缓存数据库,这部分缓存数据不能被丢弃,因此通常需要单独分配存储空间,并且存储空间需要留有余量,以备后端接口有问题、数据解析有问题、出现各种异常情况时将首页缓存数据作为兜底数据。
在本实施例的一些可选实现方式中,上述首页缓存数据库可以包括根据消息摘要划分的多个首页缓存数据池,上述其它页缓存数据库可以包括根据消息摘要划分的多个其它页缓存数据池;上述从首页缓存数据库中获取匹配消息摘要的响应包括:从消息摘要所属的首页缓存数据池中获取匹配消息摘要的响应;上述从其它页缓存数据库中获取匹配消息摘要的响应包括:从消息摘要所属的其它页缓存数据池中获取匹配消息摘要的响应。
在这里,首页缓存数据库和其它页缓存数据库根据消息摘要分别划分了多个其它页缓存数据池,当第二缓存数据库中的缓存数据在对数据所在的容器加锁时,如果将首页缓存数据库和/或其它页缓存数据库的缓存数据均放在一个数据池中,在高并发的获取操作时,容易形成排队严重的瓶颈,导致获取数据的时间较长,因此,将首页缓存数据库和/或其它页缓存数据库划分为多个缓存数据池,可以避免获取Nginx的缓存数据的时间过长。
步骤204,向用户端发送第一响应。
在本实施例中,上述电子设备可以向提交网页访问请求的用户端发送上述第一响应。
在本实施例的一些可选的实现方式中,上述电子设备可以在当前最新的数据中不存在匹配消息摘要的缓存数据时,向网站服务器发送网页访问请求,再从网站服务器中获取返回的对网页访问请求的响应。作为示例,上述加速网页访问的方法还可以包括:若步骤202中判断的结果为消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,则向网站服务器发送网页访问请求;判断在预定时间内是否从网站服务器接收到对网页访问请求的第二响应;若是,向用户端发送第二响应,将消息摘要和空值添加至第一缓存数据库并配置数据的失效时间,并将消息摘要和第二响应添加至第二缓存数据库。
在这里,响应于消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,可以向网站服务器发送网页访问请求以获取响应,从而保证了及时获取最新的数据;在等待响应的过程中,为了确保向用户端返回响应的速度,可以设定从网站服务器接收第二响应的预定时间,将在预定时间内从网站服务器返回的响应作为第二响应向用户端发送,并将消息摘要和空值添加至第一缓存数据库并配置数据的失效时间,并将消息摘要和第二响应添加至第二缓存数据库,以更新当前最新的数据。
在本实施例的一些可选的实现方式中,为了确保向用户返回响应的速度,上述的加速网页访问的方法还可以包括:若在预定时间内未从网站服务器接收到对网页访问请求的第二响应的结果,则查询消息摘要是否存在于第二缓存数据库中对应失效时间之前的缓存数据中;响应于存在,从对应失效时间之前的缓存数据中获取匹配消息摘要的第三响应;向用户端发送第三响应。
在这里,当网站服务器接收的用户请求过多无法完全响应时,通过从失效时间之前的缓存数据中获取匹配消息摘要的第三响应并向用户端发送第三响应,与现有的从分布使缓存中获取缓存的响应相比,无需通过网络传输获取缓存数据,因此提高了向用户端返回响应的速度。
在本实施例的一些可选的实现方式中,上述加速网页访问的方法还可以包括:响应于消息摘要不存在于第二缓存数据库中对应失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配消息摘要的第四响应;向用户端发送第四响应。
在这里,Redis缓存数据库为分布式缓存数据库,是开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、键-值(Key-Value)数据库,并提供多种语言的API,缓存的数据较全,分布式缓存数据库中未缓存于本机的缓存数据需要通过网络传输来获取其中的响应。这里通过使用分布式缓存,可以避免用户端发送的网页访问请求无响应,以及避免缺失向用户呈现的内容。
在本实施例的一些可选的实现方式中,上述加速网页访问的方法还可以包括:响应于消息摘要不存在于Redis缓存数据库中,从首页缓存数据库中获取第五响应;向用户端发送第五响应。
在这里,获取的第五响应,可以是根据预设规则确定的预定响应,例如按照设计人员设定的算法确定的响应;也可以是随机从首页缓存数据库中获取的响应。这里的通过使用首页缓存数据中的响应兜底,可以避免用户端发送的网页访问请求无响应,以及避免缺失向用户呈现的内容。
在本实施例的一些可选的实现方式中,上述加速网页访问的方法还可以包括:采用近期最少使用算法(Least Recently Used,缩写为LRU)清理第二缓存数据库中的缓存数据。
在这里,第二缓存数据库中的缓存数据存入时,不指定失效时间,可以通过Nginx的共享缓存自身的数据管理算法进行缓存数据的管理,例如采用近期最少使用算法淘汰冷数据。
继续参见图3a,图3a是根据本实施例的加速网页访问的方法的应用场景的一个示意图。在图3a的应用场景中,Web服务301在接收到用户访问请求时,先查询Key缓存302中是否存在请求中的URL的消息摘要,若存在,则根据URL参数指向的第一页缓存303的第X片或其它页缓存304的第Y片中获取匹配消息摘要的缓存数据,其中1<X<划分首页缓存的片的数量n,1<Y<划分消息摘要缓存的片的数量m;若Key缓存中不存在消息摘要,则向后台服务305发送请求以在预定时间内获取后台服务返回的响应;若在预定时间内未能获取到后台服务305返回的响应,则去首页缓存303中或其它页缓存304中缓存于Key缓存的失效时间之前的缓存数据中获取匹配消息摘要的响应;若首页缓存303或其它页缓存304中缓存于Key缓存的失效时间之前的缓存数据中不存在匹配消息摘要的响应,则从Redis缓存306中获取匹配消息摘要的缓存数据;若Redis缓存306中获取不存在匹配消息摘要的缓存数据,则从首页缓存303中返回首页缓存数据。其中,首页缓存的分片对应上述实施例中的首页缓存数据池;其它页缓存的分片对应上述实施例中的其它页缓存数据池,这里的n和m的数量可以根据系统需要设定,既可以相等,也可以不相等。
继续参见图3b,图3b是根据本实施例的加速网页访问的方法的应用场景的另一个示意图。在图3b的应用场景中,可以通过以下步骤获取匹配网页访问请求的URL的消息摘要的响应:
首先,在步骤351中,获取网页访问请求的URL的消息摘要,之后执行步骤352;
之后,在步骤352中,判断消息摘要是否存在于Key缓存中,若是,则执行步骤353,若否,则执行步骤355;
之后,在步骤353中,从消息摘要缓存(首页缓存或其它页缓存)中获取匹配消息摘要的缓存数据,之后执行步骤354;
之后,在步骤354中,向用户端发送获取的缓存数据;
之后,在步骤355中,向网页服务器转发网页访问请求,之后执行步骤356;
之后,在步骤356中,判断是否在预定时间内收到从网页服务器返回的响应,若是,执行步骤357,若否,则执行步骤359;
之后,在步骤357中,向用户端发送从网页服务器返回的响应,之后执行步骤358;
之后,在步骤358中,将消息摘要-响应键值对存入消息摘要缓存中,将消息摘要-空值键值对存入Key缓存中并设置数据失效时间;
之后,在步骤359中,判断对应失效时间之前的消息摘要缓存中是否存在匹配消息摘要的缓存数据,若是,则执行步骤360,若否,则执行步骤362;
之后,在步骤360中,从对应失效时间之前的消息摘要缓存中(首页缓存或其它页缓存)中获取缓存数据,之后执行步骤361;
之后,在步骤361中,向用户端发送获取的缓存数据;
之后,在步骤362中,判断Redis缓存数据库中是否存在匹配消息摘要的缓存数据,若是,则执行步骤363,若否,则执行步骤365;
之后,在步骤363中,从Redis缓存数据库中获取匹配消息摘要的缓存数据,之后执行步骤364;
之后,在步骤364中,向用户端发送获取的缓存数据;
之后,在步骤365中,从消息摘要缓存中获取首页缓存数据;
之后,在步骤366中,向用户端发送获取的首页缓存数据。
在上述的图3a和图3b所对应的应用场景中,图2实施例中的第一缓存数据库以Key缓存的形式存在,第二缓存数据库以消息摘要缓存的形式存在,第二缓存数据库中的首页缓存数据库以首页缓存的形式存在,第二缓存数据库中的其它页缓存数据库以其它页缓存的形式存在,上述实施例中的分布式Redis缓存数据库以Redis缓存的形式存在,上述的网站服务器以后台服务的形式存在。
上述的实施例提供的基于服务器Nginx的加速网页访问的方法,通过利用本地第一缓存数据库加速对本地第二缓存数据库中是否存在匹配消息摘要的缓存数据的判断,同时减少了需要通过网络传输获取的缓存数据中的响应,因此提高了向用户提供响应的速度。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种基于服务器Nginx的加速网页访问的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的基于服务器Nginx的加速网页访问的装置400包括:消息摘要获取模块410、缓存数据判断模块420、第一响应获取模块430和第一响应发送模块440。其中,消息摘要获取模块410,配置用于获取网页访问请求中统一资源定位符的消息摘要;缓存数据判断模块420,配置用于判断消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;第一响应获取模块430,配置用于若消息摘要存在于本地存储消息摘要-空键值对的第一缓存数据库中,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配消息摘要的第一响应;第一响应发送模块440,配置用于向用户端发送第一响应。
在本实施例的一些可选实现方式中,加速网页访问的装置400还可以包括:访问请求发送模块(图中未示出),配置用于若消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,向网站服务器发送网页访问请求;接受响应判断模块(图中未示出),配置用于判断在预定时间内是否从网站服务器接收到对网页访问请求的第二响应;第二响应发送模块(图中未示出),配置用于若在预定时间内从网站服务器接收到对网页访问请求的第二响应,向用户端发送第二响应,将消息摘要和空值添加至第一缓存数据库并配置数据的失效时间,并将消息摘要和第二响应添加至第二缓存数据库。
在本实施例的一些可选实现方式中,加速网页访问的装置400还可以包括:访问请求发送模块(图中未示出),配置用于若消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,向网站服务器发送网页访问请求;接受响应判断模块(图中未示出),配置用于判断在预定时间内是否从网站服务器接收到对网页访问请求的第二响应;第二响应发送模块(图中未示出),配置用于若在预定时间内从网站服务器接收到对网页访问请求的第二响应,向用户端发送第二响应,将消息摘要和空值添加至第一缓存数据库并配置数据的失效时间,并将消息摘要和第二响应添加至第二缓存数据库。
在本实施例的一些可选实现方式中,加速网页访问的装置400还可以包括:消息摘要查询模块(图中未示出),配置用于若在预定时间内未从网站服务器接收到对网页访问请求的第二响应,查询消息摘要是否存在于第二缓存数据库中对应失效时间之前的缓存数据中;第三响应获取模块(图中未示出),配置用于响应于消息摘要存在于第二缓存数据库中对应失效时间之前的缓存数据中,从对应失效时间之前的缓存数据中获取匹配消息摘要的第三响应;第三响应发送模块(图中未示出),配置用于向用户端发送第三响应。
在本实施例的一些可选实现方式中,加速网页访问的装置400还可以包括:第四响应获取模块(图中未示出),用于响应于消息摘要不存在于第二缓存数据库中对应失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配消息摘要的第四响应;第四响应发送模块(图中未示出),用于向用户端发送第四响应。
在本实施例的一些可选实现方式中,第二缓存数据库包括:首页缓存数据库和其它页缓存数据库;上述的第一响应获取模块430进一步配置用于:响应于统一资源定位符的参数指向网站服务器的首页,从首页缓存数据库中获取匹配消息摘要的响应;响应于统一资源定位符的参数未指向网站服务器的首页,从其它页缓存数据库中获取匹配消息摘要的响应。
在本实施例的一些可选实现方式中,首页缓存数据库包括根据消息摘要划分的多个首页缓存数据池,其它页缓存数据库包括根据消息摘要划分的多个其它页缓存数据池;上述的第一响应获取模块430从首页缓存数据库中获取匹配消息摘要的响应包括:从消息摘要所属的首页缓存数据池中获取匹配消息摘要的响应;从其它页缓存数据库中获取匹配消息摘要的响应包括:从消息摘要所属的其它页缓存数据池中获取匹配消息摘要的响应。
在本实施例的一些可选实现方式中,上述加速网页访问的装置400还可以包括:第五响应获取模块,配置用于响应于消息摘要不存在于Redis缓存数据库中,从首页缓存数据库中获取第五响应;第五响应发送模块,配置用于向用户端发送第五响应。
在本实施例的一些可选实现方式中,上述加速网页访问的装置400进一步配置用于:采用最少使用页面置换算法LRU清理第二缓存数据库中的缓存数据。
应当理解,上述的第一缓存数据库、第二缓存数据库,仅代表缓存数据库中存储的键值对数据不同,其中的第一、第二并不构成对获取模块的特殊限定。
同理,上述的第一响应、第二响应、第三响应、第四响应和第五响应,仅代表获取的响应的来源不同,例如第一响应是从第二缓存数据库中获取的与第一缓存数据库中的消息摘要相对应的匹配消息摘要的响应,第二响应是从网站服务器返回的匹配网页访问请求的响应,第三响应是从第二缓存数据库对应第一缓存数据库中数据失效时间之前的缓存数据中获取的匹配消息摘要的响应,第四响应是从Redis缓存数据库中获取的匹配消息摘要的响应,第五响应是从首页缓存数据库中获取的响应,其中的第一、第二、第三、第四和第五并不构成对响应的特殊限定。
本领域技术人员可以理解,上述基于服务器Nginx的加速网页访问的装置400还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图4中未示出。
应当理解,装置400中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对处理并发订单的方法200描述的操作和特征同样适用于装置400及其中包含的单元,在此不再赘述。装置400中的相应单元可以与终端设备和/或服务器中的单元相互配合以实现本申请实施例的方案。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括消息摘要获取模块、缓存数据判断模块、第一响应获取模块和第一响应发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,消息摘要获取模块还可以被描述为“用于获取网页访问请求中统一资源定位符的消息摘要”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取网页访问请求中统一资源定位符的消息摘要;判断消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;若存在,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配消息摘要的第一响应;向用户端发送第一响应。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (15)
1.一种基于服务器Nginx的加速网页访问的方法,其特征在于,所述方法包括:
获取网页访问请求中统一资源定位符的消息摘要;
判断所述消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;
若消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,向网站服务器发送所述网页访问请求;
判断在预定时间内是否从网站服务器接收到对所述网页访问请求的第二响应;
若在预定时间内未从网站服务器接收到对所述网页访问请求的第二响应,查询所述消息摘要是否存在于第二缓存数据库中对应失效时间之前的缓存数据中;
响应于所述消息摘要存在于第二缓存数据库中对应失效时间之前的缓存数据中,从对应失效时间之前的缓存数据中获取匹配所述消息摘要的第三响应;
向用户端发送所述第三响应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在预定时间内从网站服务器接收到对所述网页访问请求的第二响应,向所述用户端发送所述第二响应,将所述消息摘要和空值添加至所述第一缓存数据库并配置数据的失效时间,并将所述消息摘要和所述第二响应添加至所述第二缓存数据库。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述消息摘要存在于本地存储消息摘要-空键值对的第一缓存数据库中,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应;
向用户端发送所述第一响应。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述消息摘要不存在于第二缓存数据库中对应所述失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配所述消息摘要的第四响应;
向所述用户端发送所述第四响应。
5.根据权利要求4所述的方法,其特征在于,所述第二缓存数据库包括:首页缓存数据库和其它页缓存数据库;
所述从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应包括:
响应于所述统一资源定位符的参数指向网站服务器的首页,从所述首页缓存数据库中获取匹配所述消息摘要的响应;
响应于所述统一资源定位符的参数未指向网站服务器的首页,从所述其它页缓存数据库中获取匹配所述消息摘要的响应。
6.根据权利要求5所述的方法,其特征在于,所述首页缓存数据库包括根据消息摘要划分的多个首页缓存数据池,所述其它页缓存数据库包括根据消息摘要划分的多个其它页缓存数据池;
所述从首页缓存数据库中获取匹配所述消息摘要的响应包括:从所述消息摘要所属的首页缓存数据池中获取匹配所述消息摘要的响应;
所述从其它页缓存数据库中获取匹配所述消息摘要的响应包括:从所述消息摘要所属的其它页缓存数据池中获取对应所述消息摘要的响应。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于所述消息摘要不存在于所述Redis缓存数据库中,从首页缓存数据库中获取第五响应;
向用户端发送所述第五响应。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用近期最少使用算法LRU清理所述第二缓存数据库中的缓存数据。
9.根据权利要求1所述的方法,其特征在于,所述从网页访问请求中获取统一资源定位符的消息摘要包括:
过滤所述统一资源定位符的参数中的非预设参数,得到过滤后的统一资源定位符参数;
排序所述过滤后的统一资源定位符参数,得到排序后的统一资源定位符参数;
使用消息摘要算法对所述排序后的统一资源定位符参数进行计算,得到所述消息摘要。
10.一种基于服务器Nginx的加速网页访问的装置,其特征在于,所述装置包括:
消息摘要获取模块,用于获取网页访问请求中统一资源定位符的消息摘要;
缓存数据判断模块,用于判断所述消息摘要是否存在于本地存储消息摘要-空键值对的第一缓存数据库中;
访问请求发送模块,用于若所述消息摘要不存在于本地存储消息摘要-空键值对的第一缓存数据库中,向网站服务器发送所述网页访问请求;
接受响应判断模块,用于判断在预定时间内是否从网站服务器接收到对所述网页访问请求的第二响应;
消息摘要查询模块,用于若在预定时间内未从网站服务器接收到对所述网页访问请求的第二响应,查询所述消息摘要是否存在于第二缓存数据库中对应失效时间之前的缓存数据中;
第三响应获取模块,用于响应于所述消息摘要存在于第二缓存数据库中对应失效时间之前的缓存数据中,从对应失效时间之前的缓存数据中获取匹配所述消息摘要的第三响应;
第三响应发送模块,用于向用户端发送所述第三响应。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二响应发送模块,用于若在预定时间内从网站服务器接收到对所述网页访问请求的第二响应,向所述用户端发送所述第二响应,将所述消息摘要和空值添加至所述第一缓存数据库并配置数据的失效时间,并将所述消息摘要和所述第二响应添加至所述第二缓存数据库。
12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:
第一响应获取模块,用于若所述消息摘要存在于本地存储消息摘要-空键值对的第一缓存数据库中,从本地存储消息摘要-响应键值对的第二缓存数据库中获取匹配所述消息摘要的第一响应;
第一响应发送模块,用于向用户端发送所述第一响应。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第四响应获取模块,用于响应于所述消息摘要不存在于第二缓存数据库中对应所述失效时间之前的缓存数据中,从存储消息摘要-响应键值对的存储系统Redis缓存数据库中获取匹配所述消息摘要的第四响应;
第四响应发送模块,用于向所述用户端发送所述第四响应。
14.一种基于服务器Nginx的加速网页访问的装置,其特征在于,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至9中任一项所述的基于服务器Nginx的加速网页访问的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至9中任一项所述的基于服务器Nginx的加速网页访问的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610282725.3A CN107329963B (zh) | 2016-04-29 | 2016-04-29 | 加速网页访问的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610282725.3A CN107329963B (zh) | 2016-04-29 | 2016-04-29 | 加速网页访问的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329963A CN107329963A (zh) | 2017-11-07 |
CN107329963B true CN107329963B (zh) | 2020-02-07 |
Family
ID=60193501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610282725.3A Active CN107329963B (zh) | 2016-04-29 | 2016-04-29 | 加速网页访问的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329963B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470054A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种数据访问方法及系统 |
CN108989390B (zh) * | 2018-06-19 | 2020-11-10 | 北京智明星通科技股份有限公司 | 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质 |
CN110245156A (zh) * | 2019-05-29 | 2019-09-17 | 吉旗(成都)科技有限公司 | 缓存数据处理方法及装置 |
CN111083108A (zh) * | 2019-11-14 | 2020-04-28 | 北京字节跳动网络技术有限公司 | 一种数据处理的方法、装置、介质和电子设备 |
CN111143417A (zh) * | 2019-12-27 | 2020-05-12 | 广东浪潮大数据研究有限公司 | 数据处理方法、装置、系统及Nginx服务器和介质 |
CN113515229B (zh) * | 2020-04-09 | 2024-04-09 | 伊姆西Ip控股有限责任公司 | 存储数据的方法、装置和计算机程序产品 |
CN112269955A (zh) * | 2020-11-02 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种基于Redis的网页响应和数据缓存提速处理方法及系统 |
CN116208668A (zh) * | 2023-05-05 | 2023-06-02 | 北京零壹视界科技有限公司 | 基于内容分发网络的数据缓存方法、装置、设备和介质 |
CN117724852B (zh) * | 2024-02-07 | 2024-05-07 | 微网优联科技(成都)有限公司 | 一种云电脑计算资源分配方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099508A (ja) * | 2000-09-22 | 2002-04-05 | Matsushita Electric Ind Co Ltd | 端末装置 |
CN101751408A (zh) * | 2008-11-28 | 2010-06-23 | 上海均宜信息科技有限公司 | 一种互联网文内广告的系统与方法 |
CN103428243A (zh) * | 2012-05-21 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 动态网页静态存储的实现方法、设备和系统 |
CN103455478A (zh) * | 2012-05-21 | 2013-12-18 | 腾讯科技(深圳)有限公司 | 加速网页访问的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029899A1 (en) * | 2009-08-03 | 2011-02-03 | FasterWeb, Ltd. | Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading |
-
2016
- 2016-04-29 CN CN201610282725.3A patent/CN107329963B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099508A (ja) * | 2000-09-22 | 2002-04-05 | Matsushita Electric Ind Co Ltd | 端末装置 |
CN101751408A (zh) * | 2008-11-28 | 2010-06-23 | 上海均宜信息科技有限公司 | 一种互联网文内广告的系统与方法 |
CN103428243A (zh) * | 2012-05-21 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 动态网页静态存储的实现方法、设备和系统 |
CN103455478A (zh) * | 2012-05-21 | 2013-12-18 | 腾讯科技(深圳)有限公司 | 加速网页访问的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107329963A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329963B (zh) | 加速网页访问的方法和装置 | |
US9055124B1 (en) | Enhanced caching of network content | |
CN107943594B (zh) | 数据获取方法和装置 | |
US10909104B2 (en) | Caching of updated network content portions | |
US20170193034A1 (en) | Object data updating method and apparatus in an object storage system | |
US9058392B1 (en) | Client state result de-duping | |
CN108984553B (zh) | 缓存方法和装置 | |
CN106933965B (zh) | 静态资源请求的方法 | |
CN107918617B (zh) | 数据查询方法和装置 | |
CN110572422B (zh) | 数据下载方法、装置、设备和介质 | |
US20180302489A1 (en) | Architecture for proactively providing bundled content items to client devices | |
EP3994586A1 (en) | Revealing content reuse using fine analysis | |
CN107844488B (zh) | 数据查询方法和装置 | |
CN108334516B (zh) | 信息推送方法和装置 | |
CN105868234A (zh) | 缓存数据的更新方法及装置 | |
CN104077310A (zh) | 加载资源文件的方法、设备和系统 | |
CN111193789A (zh) | 订阅信息推送方法、装置、计算机设备和可读存储介质 | |
GB2543042A (en) | Method for privacy protection | |
CN113452733A (zh) | 文件下载方法和装置 | |
CN113761565B (zh) | 数据脱敏方法和装置 | |
US10771578B2 (en) | Webpage loading method and apparatus | |
CN116055143A (zh) | 一种分享链接的加密方法及装置 | |
US20150161152A1 (en) | Content aggregator for synchronous content distribution | |
CN113138943B (zh) | 一种处理请求的方法和装置 | |
KR20180088260A (ko) | 웹 페이지를 생성하는 방법 및 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |