CN107967270A - 实现多功能缓存的方法和*** - Google Patents

实现多功能缓存的方法和*** Download PDF

Info

Publication number
CN107967270A
CN107967270A CN201610910984.6A CN201610910984A CN107967270A CN 107967270 A CN107967270 A CN 107967270A CN 201610910984 A CN201610910984 A CN 201610910984A CN 107967270 A CN107967270 A CN 107967270A
Authority
CN
China
Prior art keywords
data
caching
server
memory device
buffer memory
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
Application number
CN201610910984.6A
Other languages
English (en)
Inventor
马顺风
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610910984.6A priority Critical patent/CN107967270A/zh
Publication of CN107967270A publication Critical patent/CN107967270A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种实现多功能缓存的方法和***,能够突破实现缓存功能的技术局限性,降低开发和维护成本;且对原有***零侵入配置,灵活设置缓存的开启和关闭;此外,还可实现自由选择缓存设备,提高***性能。该方法包括:利用Nginx,根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中,其中回源是指将客户端的请求发回服务器,并从服务器获取数据,其中所述缓存设备为内存数据库和/或外部数据库。

Description

实现多功能缓存的方法和***
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种实现多功能缓存的方法和***。
背景技术
缓存技术几乎已经成为提高各种***性能的有效技术手段,在互联网网站***中更是一种不可或缺的技术。各个***根据自身的需要,在实现缓存的过程中用到的技术也不尽相同。
现有技术中,实现缓存功能的行之有效的方法是利用Nginx自身的ngx_http_proxy_module模块,通过代理的方式对数据进行缓存。通过该模块中的相关缓存指令,从而轻松实现将数据缓存在磁盘文件中,且配置较为简便。
但这种方式存在一定的缺陷性:
首先,该方式只对使用ngx_http_proxy_module模块的请求起作用,有一定的局限性;其次,配置较为死板,无法动态开启或关闭缓存;再次,因为获取的数据是存储在磁盘,所以能够存储的可用文件的个数受限于所在文件***的inode数;最后,数据缓存过程中,缓存设备单一,只能做到将数据缓存到指定的目录中,而无法实现自由选择缓存设备,对缓存功能的实现有一定的影响,不利于提高整个***的性能。
发明内容
有鉴于此,本发明提供一种实现多功能缓存的方法和***,能够突破实现缓存功能的技术局限性,降低开发和维护成本;且对原有***零侵入配置,灵活设置缓存的开启和关闭;此外,还可实现自由选择缓存设备,提高***性能。
为实现上述目的,根据本发明的一个方面,提供了一种实现多功能缓存的方法。
本发明的一种实现多功能缓存的方法包括:利用Nginx,根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中,其中回源是指将客户端的请求发回服务器,并从服务器获取数据,其中所述缓存设备为内存数据库和/或外部数据库。
可选地,所述方法还包括:设置缓存开关,包括全局缓存开关和/或变量缓存开关,以动态开启或关闭缓存。
可选地,从服务器回源数据还包括:回源时,利用异步非阻塞锁机制,以确保相同的请求只有一个被回源到服务器。
可选地,所述内存数据库采用Redis、Memchached、Nginx共享缓存中的一种或几种。
可选地,所述方法还包括:根据缓存需求,在将所述数据保存至缓存设备中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。
为实现上述目的,根据本发明的另一方面,提供了一种实现多功能缓存的***。
本发明的一种实现多功能缓存的***包括:Nginx代理模块,用于根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中,其中回源是指将客户端的请求发回服务器,并从服务器获取数据;服务器,用于根据数据回源请求,提供数据;缓存设备,为用于保存所述数据的内存数据库和/或外部数据库。
可选地,所述Nginx代理模块还用于:设置缓存开关,包括全局缓存开关和/或变量缓存开关,以动态开启或关闭缓存。
可选地,所述Nginx代理模块还用于:回源时,利用异步非阻塞锁机制,以确保相同的请求只有一个被回源到服务器。
可选地,所述内存数据库采用Redis、Memchached、Nginx共享缓存中的一种或几种。
可选地,所述Nginx代理模块还用于:根据缓存需求,在将所述数据保存至缓存设备中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。
根据本发明的技术方案,通过利用Lua等语言,编写处理脚本,并将脚本注册到Nginx的不同阶段中,从而实现利用Nginx代理的方式,将缓存功能前置,而不再需要在***内部开发各式各样的缓存,降低开发和维护成本,且不再受制于Nginx本身中处理模块的局限性;且通过利用Nginx代理的方式实现有选择地将数据存放到不同的缓存设备上,从而可以打破数据缓存的局限性,提高原有***的性能;通过动态地设置缓存开关,从而可以增加缓存功能的灵活性;且在实现缓存功能的同时,利用异步非阻塞锁机制保护后端服务器;通过支持缓存数据分片,从而有利于降低因缓存设备故障带来的风险;通过利用数据切割功能、数据压缩处理技术,从而可以更好的提高访问性能。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的实现多功能缓存的方法的主要步骤的示意图;
图2是根据本发明实施例的实现多功能缓存的***的主要部分的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的实现多功能缓存的方法基于Nginx实现,对原***零侵入,具体而言可以是:通过利用Lua等语言,编写处理脚本,并将脚本注册到Nginx的不同阶段中,从而实现利用Nginx代理的方式,将缓存功能前置,从而有效避免因使用Nginx自带缓存模块ngx_http_proxy_module而造成的局限性。
图1是根据本发明实施例的实现多功能缓存的方法的主要步骤的示意图。
如图1所示,本发明实施例的实现多功能缓存的方法主要包括如下步骤:
步骤S11:利用Nginx,根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则
步骤S12:从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中。若上述步骤S11中从缓存中获取失败,则可能是缓存失效或者该数据请求为该种数据请求的第一次请求,缓存中还不存在所要请求的数据,则从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中。
其中回源是指将客户端的请求发回服务器,并从服务器获取数据,其中所述缓存设备为内存数据库和/或外部数据库。
具体而言:
1.当Nginx接收到用户从客户端发起的数据请求时,本发明实施例中,首先会根据预先设置的缓存key从缓存设备中获取数据,如果获取到则直接将数据返回给客户端;否则继续执行第2步骤。此外,本发明实施例中,若未预先设置缓存key,则默认使用URI+QueryString(查询字符串)。
2.当缓存失效或者是第一次访问时缓存没有数据时,Nginx负责回源服务器以请求数据。
3.如果回源请求数据成功(如返回200响应码),则继续执行第4步骤;返回不成功(如非200响应码),则将响应码和数据原样输出。
4.将数据存储到预先设置的缓存设备上。
5.将数据返回客户端。
本发明实施例中,为了保证可以快速的关闭和开启缓存,增加缓存功能的灵活性,在上面的第1步骤中,设计了缓存开关。本发明实施例中可以是两种开关:一种是全局缓存开关,可以默认设置该开关处于开启状态,此时代表使用缓存;当该开关处于关闭状态时,所有数据请求直接向后端的服务器回源。另一种是为单个缓存key设计的开关,可以称之为变量缓存开关。该开关可以更细粒度的控制缓存的使用。
为了保证缓存开关的动态设置性,可以把缓存开关以键值对的形式放到缓存设备中,比如全局缓存开关命名为prefix_global_switch,它的值可以定为on和非on,当值是on时就代表缓存开启,其它则代表缓存关闭;而为单个缓存key设置的变量缓存开关,用户可以自行配置一个变量(比如variable),把这个变量加上前后缀就变成了变量缓存开关,如prefix_variable_switch,开关值和用法与全局缓存开关类似。
为了方便的设置开关值,本发明实施例中,可以基于一个http接口实现。这个http接口可以有三个入参分别是type表示缓存设备类型、switch_name表示开关名字、switch_value表示开关值。利用该接口的具体处理流程如下:当接受到开关设置请求,首先提取出请求中的三个入参,通过type确定缓存设备、switch_name确定开关名字、通过switch_value确定开关值,最后通过调用缓存设备的set方法(缓存设备的设置数据方法)对开关值进行更新。本发明实施例中,除了基于http接口这个比较通用的开关值设置方式之外,还可以采用其他方式。例如假设已确定缓存设备是基于Redis,且知道缓存开关位于哪个Redis实例上,则直接开启或关闭相应Redis实例上的缓存开关即可实现缓存开关值得设置。
采用上述方式设置的全局缓存开关prefix_global_switch适用于所有的数据请求,所以任何数据请求到达Nginx后,都会先从缓存设备中获取prefix_global_switch的值,通过获取到的开关值来确定是从缓存获取数据还是利用回源的方式获取数据。而变量缓存开关prefix_variable_switch则可以适用到某个具体的数据请求上。本发明实施例中,变量缓存开关中的variable可以是设置好一个有规则的字符串,例如可以是代表数据请求的URL,如一个请求是http://abc.de.com/abc,那么代表这个请求的开关就是prefix_/abc_switch。该开关在检查完全局缓存开关之后被检查,使用方式与全局缓存开关相同。
另外,作为一个通用地多功能缓存实现,本发明实施例中还考虑了缓存失效时所产生的负面影响。基于缓存失效时对回源的管理,在前述的第2步骤中,回源时会加上一个异步非阻塞锁,以确保大量的相同的数据请求,只会有一个真正回源到后端。这里所说的非阻塞,是因为该锁不会阻塞Nginx的进程,可以为每种数据请求定义一把锁,当一个数据请求获取到该锁后,后续同一种类的其它数据请求是无法获取到该锁的,它们都会被“阻塞”,此时Nginx还可异步的去处理其它种类的数据请求。当基于第一个获取锁的请求将获取到的数据更新到缓存设备后,后续的数据请求就不会再回源后端的服务器了,从而可以起到保护后端应用的作用。
此外,在前述的第4步骤中,具体将获取到的数据存储到哪个缓存设备,用户是可以自行选择,如可以通过Nginx变量的形式设置选择哪个设备,例如set$device redis,这就表示使用Reids这个缓存设备;当然,也可以通过编写lua-nginx-module模块,使用其中的ngx.ctx请求上下文,比如ngx.ctx[“device”]=”redis”,然后就可以获取要存储的目标缓存设备标识了。
缓存的目的是为了提高***性能,所以较之于现有技术将数据缓存至磁盘中,本发明做了合理的改进,即将缓存数据保存至内存数据库中。本发明实施例中提供了多种可供使用的内存数据库,例如但不限于:Redis、Memchached、Nginx共享缓存。此外,还可以是使用其他外部数据库。实现缓存设备的设置可以基于定义的三个入口方法,分别是获取数据、设置数据、删除数据,每个缓存设备都需要实现这三个入口方法。入口方法需要实现的功能如下:当入口方法被调用时,先获取用户配置的缓存设备(这些缓存设备预先会被注册在一个文件中),然后直接调用该缓存设备对应的实现方法就可以了。如果想扩展缓存设备,只需要实现上述三个入口方法,然后将其注册到文件中就可以使用。
本发明实施例的实现多功能缓存的方法还包括:根据缓存需求,在将数据保存至缓存设备中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。以下对此三种处理操作进行详细说明。
当缓存数据量过大的时候,单实例的缓存设备可能会产生各种风险,例如将一个几百GB的缓存数据放入一个单实例的Redis中,当高并发时Redis性能会下降;另外一种风险就是当Redis实例宕机后,所产生的缓存失效惩罚后端服务是无法承受的。本发明实施例提供自动数据分片算法,可以设置多个存储实例,并根据缓存key将其hash到固定的实例中:例如可以使用配置指令设置多个Redis实例,这样每个Redis实例的使用量就会减小,从而降低其使用风险。
为了进一步的提升服务质量,降低数据响应时间,本发明实施例支持对单个缓存数据进行平均切割,即数据切割存储。所谓的平均切割就是把一块大数据,切割成相同大小的几等份,每一份按顺序存放到相应的实例中。
详细实现如下:
前置条件A:通过配置指令,设置若干个Redis实例,例如可以是3个,分别是Redis1、Redis2、Redis3。
前置条件B:通过配置指令,设置当要缓存的数据大于预设阈值(例如1MB)时就需要对数据进行切割。
当第一次获取回源数据后,首先检查该数据大小(用n表示)是否大于1MB,如果大于,则将整个数据用3做整除(因为设置了3个存储实例),这时切割出的前两块数据的大小就是整除出来的数(用b表示),最后一块数据的大小就是n-b*2。切割后存储之前首先生成一个版本号,这个版本号可以放到每个切割数据块的第一个字节,存放的时候按照前置条件A设置的实例顺序,依次将数据切割块并行放入各个实例中。最后为该数据的key打上数据切割标记,代表该key的数据是被切割的。
从缓存获取数据时,首先检查缓存key是否被打上了切割标记,如果没有则走正常流程。如果是被切割的,则首先并行地从三个Redis实例中取出缓存的块数据,成功取出后对比所有数据块的第一个字节是否一致,如果一致则将第一个字节去掉后,将各个数据块按照前置条件A设置的实例顺序拼装并输出。其他情况视为缓存未命中。
为了减少每个请求的流量,可以对数据进行压缩处理,压缩算法使用的是目前大部分浏览器都支持的gzip压缩算法。具体处理过程如下:在数据请求到达后,首先会检查该数据请求的accept-encoding请求头中是否有gzip这个值,如果有则代表发起该数据请求的客户端支持gzip解压缩,这个时候代表该请求的缓存key就是默认的缓存key(也可以是用户指定的key)再加上gzip后缀,这个key可以叫做压缩缓存key,然后根据这个压缩缓存key就可以从指定的设备中获取数据了。
如果取不到数据则从后端的服务器获取数据,获取到的数据在放入缓存设备之前会先用gizp算法压缩,然后将压缩完的数据返回,并且要在http的响应头中设置content-encoding值为gzip,告诉客户端这个数据是经过gzip压缩的。
实际应用中,这个数据压缩功能可以设置成默认为关闭状态,可以通过一个开关prefix_gzip_switch来开启,使用前述设置缓存开关时提到的http接口的类似原理来控制开启。这个压缩开关在检查完prefix_global_switch、prefix_variable_switch这两个开关之后被检查。
根据本发明实施例的实现多功能缓存的方法可以看出,通过利用Lua等语言,编写处理脚本,并将脚本注册到Nginx的不同阶段中,从而实现利用Nginx代理的方式,将缓存功能前置,而不再需要在***内部开发各式各样的缓存,降低开发和维护成本,且不再受制于Nginx本身中处理模块的局限性;且通过利用Nginx代理的方式实现有选择地将数据存放到不同的缓存设备上,从而可以打破数据缓存的局限性,提高原有***的性能;通过动态地设置缓存开关,从而可以增加缓存功能的灵活性;且在实现缓存功能的同时,利用异步非阻塞锁机制保护后端服务器;通过支持缓存数据分片,从而有利于降低因缓存设备故障带来的风险;通过利用数据切割功能、数据压缩处理技术,从而可以更好的提高访问性能。
图2是根据本发明实施例的实现多功能缓存的***的主要部分的示意图。
如图2所示,本发明实施例的实现多功能缓存的***20主要包括如下模块:Nginx代理模块201、服务器202、以及缓存设备203。其中,
Nginx代理模块201用于根据数据请求,从缓存设备203中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器202回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备203中,其中回源是指将客户端的请求发回服务器202,并从服务器202获取数据;服务器202,用于根据数据回源请求,提供数据;缓存设备203,为用于保存所述数据的内存数据库和/或外部数据库。
其中,Nginx代理模块201还可用于:设置缓存开关,包括全局缓存开关和/或变量缓存开关,以动态开启或关闭缓存。
Nginx代理模块201还可用于:回源时,利用异步非阻塞锁机制,以确保相同的请求只有一个被回源到服务器202。
其中,内存数据库采用Redis、Memchached、Nginx共享缓存中的一种或几种。
此外,Nginx代理模块201还可用于:根据缓存需求,在将所述数据保存至缓存设备203中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。
从以上描述可以看出,通过利用Lua等语言,编写处理脚本,并将脚本注册到Nginx的不同阶段中,从而实现利用Nginx代理的方式,将缓存功能前置,而不再需要在***内部开发各式各样的缓存,降低开发和维护成本,且不再受制于Nginx本身中处理模块的局限性;且通过利用Nginx代理的方式实现有选择地将数据存放到不同的缓存设备上,从而可以打破数据缓存的局限性,提高原有***的性能;通过动态地设置缓存开关,从而可以增加缓存功能的灵活性;且在实现缓存功能的同时,利用异步非阻塞锁机制保护后端服务器;通过支持缓存数据分片,从而有利于降低因缓存设备故障带来的风险;通过利用数据切割功能、数据压缩处理技术,从而可以更好的提高访问性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种实现多功能缓存的方法,其特征在于,包括:
利用Nginx,根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中,
其中回源是指将客户端的请求发回服务器,并从服务器获取数据,其中所述缓存设备为内存数据库和/或外部数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置缓存开关,包括全局缓存开关和/或变量缓存开关,以动态开启或关闭缓存。
3.根据权利要求1所述的方法,其特征在于,从服务器回源数据还包括:回源时,利用异步非阻塞锁机制,以确保相同的请求只有一个被回源到服务器。
4.根据权利要求1所述的方法,其特征在于,所述内存数据库采用Redis、Memchached、Nginx共享缓存中的一种或几种。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据缓存需求,在将所述数据保存至缓存设备中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。
6.一种实现多功能缓存的***,其特征在于,包括:
Nginx代理模块,用于根据数据请求,从缓存设备中获取数据,若获取成功,则将数据返回至客户端;否则,从服务器回源数据,将回源到的数据返回至客户端,并将所述数据保存至缓存设备中,其中回源是指将客户端的请求发回服务器,并从服务器获取数据;
服务器,用于根据数据回源请求,提供数据;
缓存设备,为用于保存所述数据的内存数据库和/或外部数据库。
7.根据权利要求6所述的***,其特征在于,所述Nginx代理模块还用于:设置缓存开关,包括全局缓存开关和/或变量缓存开关,以动态开启或关闭缓存。
8.根据权利要求6所述的***,其特征在于,所述Nginx代理模块还用于:回源时,利用异步非阻塞锁机制,以确保相同的请求只有一个被回源到服务器。
9.根据权利要求6所述的***,其特征在于,所述内存数据库采用Redis、Memchached、Nginx共享缓存中的一种或几种。
10.根据权利要求6所述的***,其特征在于,所述Nginx代理模块还用于:根据缓存需求,在将所述数据保存至缓存设备中时,进行数据分片、数据切割存储、数据压缩中的一种或几种处理,以提高缓存性能。
CN201610910984.6A 2016-10-19 2016-10-19 实现多功能缓存的方法和*** Pending CN107967270A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610910984.6A CN107967270A (zh) 2016-10-19 2016-10-19 实现多功能缓存的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610910984.6A CN107967270A (zh) 2016-10-19 2016-10-19 实现多功能缓存的方法和***

Publications (1)

Publication Number Publication Date
CN107967270A true CN107967270A (zh) 2018-04-27

Family

ID=61997048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610910984.6A Pending CN107967270A (zh) 2016-10-19 2016-10-19 实现多功能缓存的方法和***

Country Status (1)

Country Link
CN (1) CN107967270A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989390A (zh) * 2018-06-19 2018-12-11 北京智明星通科技股份有限公司 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质
CN109617943A (zh) * 2018-10-22 2019-04-12 平安科技(深圳)有限公司 数据缓存方法、装置及存储介质、计算机设备
CN111294372A (zh) * 2018-12-07 2020-06-16 北京京东尚科信息技术有限公司 一种在代理服务器实现缓存的方法、装置及***
WO2020211570A1 (zh) * 2019-04-19 2020-10-22 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质
CN112446654A (zh) * 2019-08-29 2021-03-05 北京京东尚科信息技术有限公司 地图显示方法、装置、设备和存储介质
CN112988680A (zh) * 2021-03-30 2021-06-18 联想凌拓科技有限公司 数据加速方法、缓存单元、电子设备及存储介质
CN112988803A (zh) * 2019-12-02 2021-06-18 ***通信集团浙江有限公司 微服务***业务的缓存改造方法、装置及计算设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747030A (zh) * 2013-12-12 2014-04-23 浪潮电子信息产业股份有限公司 一种基于改进的粒子群算法的Nginx服务器智能缓存方法
US20140372533A1 (en) * 2011-02-09 2014-12-18 Cliqr Technologies, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
CN104394204A (zh) * 2014-11-12 2015-03-04 浪潮(北京)电子信息产业有限公司 一种实现负载均衡中信息交互方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372533A1 (en) * 2011-02-09 2014-12-18 Cliqr Technologies, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
CN103747030A (zh) * 2013-12-12 2014-04-23 浪潮电子信息产业股份有限公司 一种基于改进的粒子群算法的Nginx服务器智能缓存方法
CN104394204A (zh) * 2014-11-12 2015-03-04 浪潮(北京)电子信息产业有限公司 一种实现负载均衡中信息交互方法及***

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
PHP技术大全: "使用Nginx+Lua(OpenResty)开发高性能Web应用", 《博客园HTTPS://WWW.CNBLOGS.COM/PHPGOD/P/5574564.HTML》 *
喂: "PHP Smarty 笔记1", 《博客园HTTPS://WWW.CNBLOGS.COM/YUMUXU/P/3616961.HTML》 *
我想去长安: "构建亿级前端读服务", 《博客园HTTPS://WWW.CNBLOGS.COM/BIGMOUTHZ/P/4734359.HTML》 *
樊重俊: "《数据库基础及应用》", 31 January 2015, 立信会计出版社 *
蒋新华: "《交通运输行业物联网与云计算技术》", 31 January 2014, 中国铁道出版社 *
蘑菇先生: "Redis性能问题排查解决手册", 《博客园HTTPS://WWW.CNBLOGS.COM/MUSHROOM/P/4738170.HTML》 *
马顺风: "设计高并发下的读服务?一个电商老兵的10条经验", 《微信公众平台》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989390A (zh) * 2018-06-19 2018-12-11 北京智明星通科技股份有限公司 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质
WO2019242455A1 (en) * 2018-06-19 2019-12-26 Beijing Elex Technology Co., Ltd Method and apparatus for user request forwarding, reverse proxy and computer readable storage medium
CN108989390B (zh) * 2018-06-19 2020-11-10 北京智明星通科技股份有限公司 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质
CN109617943A (zh) * 2018-10-22 2019-04-12 平安科技(深圳)有限公司 数据缓存方法、装置及存储介质、计算机设备
CN109617943B (zh) * 2018-10-22 2022-08-12 平安科技(深圳)有限公司 数据缓存方法、装置及存储介质、计算机设备
CN111294372A (zh) * 2018-12-07 2020-06-16 北京京东尚科信息技术有限公司 一种在代理服务器实现缓存的方法、装置及***
WO2020211570A1 (zh) * 2019-04-19 2020-10-22 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质
CN112446654A (zh) * 2019-08-29 2021-03-05 北京京东尚科信息技术有限公司 地图显示方法、装置、设备和存储介质
CN112988803A (zh) * 2019-12-02 2021-06-18 ***通信集团浙江有限公司 微服务***业务的缓存改造方法、装置及计算设备
CN112988680A (zh) * 2021-03-30 2021-06-18 联想凌拓科技有限公司 数据加速方法、缓存单元、电子设备及存储介质
CN112988680B (zh) * 2021-03-30 2022-09-27 联想凌拓科技有限公司 数据加速方法、缓存单元、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107967270A (zh) 实现多功能缓存的方法和***
US11044314B2 (en) System and method for a database proxy
CN110224996A (zh) 应用程序的网络访问方法、装置、计算机设备和存储介质
JP5183214B2 (ja) ネットワークにおいて動的に生成されたオブジェクトのキャッシングを実行するためのシステムおよび方法
WO2021169540A1 (zh) 数据缓存方法、装置及云服务器
US8244911B2 (en) Method and apparatus for concurrent and stateful decompression of multiple compressed data streams
CN106603713B (zh) 会话管理方法和***
US10680968B2 (en) Web access performance enhancement
US20030061570A1 (en) Method, system and program for associating a resource to be translated with a domain dictionary
JP3737779B2 (ja) 翻訳サーバ、翻訳方法及びプログラム
JP2009026141A (ja) キャッシュ方法及びキャッシュ装置
US10817424B1 (en) Using post-cache edge computing to re-populate dynamic content in cached content
CN110555041A (zh) 数据处理方法、装置、计算机设备和存储介质
US20150142845A1 (en) Smart database caching
CN113419824A (zh) 数据处理方法、装置、***及计算机存储介质
CN110929194B (zh) 一种基于摘要算法的静态资源文件缓存控制方法及***
KR20160056944A (ko) 캐싱된 플로우들에 기초한 가속
CN106790601A (zh) 服务地址的读取装置、***和方法
CN115203159B (zh) 一种数据存储方法、装置、计算机设备和存储介质
US11853806B2 (en) Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
WO2016101748A1 (zh) 一种网络连接的缓存方法和装置
CN111090675B (zh) 多入口数据缓存方法及存储介质
CN107092529B (zh) Olap服务方法、装置及***
CN110472169A (zh) 缓存配置方法、装置、计算机设备和存储介质
US9262436B2 (en) Online game system and method

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: 20180427