CN105471616B - 缓存***管理方法和*** - Google Patents

缓存***管理方法和*** Download PDF

Info

Publication number
CN105471616B
CN105471616B CN201410467019.7A CN201410467019A CN105471616B CN 105471616 B CN105471616 B CN 105471616B CN 201410467019 A CN201410467019 A CN 201410467019A CN 105471616 B CN105471616 B CN 105471616B
Authority
CN
China
Prior art keywords
caching system
data
request
label
caching
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
Application number
CN201410467019.7A
Other languages
English (en)
Other versions
CN105471616A (zh
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.)
Burson Marsteller Network Game Development (shenzhen) Co Ltd
Original Assignee
Burson Marsteller Network Game Development (shenzhen) 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 Burson Marsteller Network Game Development (shenzhen) Co Ltd filed Critical Burson Marsteller Network Game Development (shenzhen) Co Ltd
Priority to CN201410467019.7A priority Critical patent/CN105471616B/zh
Publication of CN105471616A publication Critical patent/CN105471616A/zh
Application granted granted Critical
Publication of CN105471616B publication Critical patent/CN105471616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种缓存***管理方法和***,其中缓存***管理方法包括:根据预设时间间隔定时向各缓存***发送心跳包;获取所述缓存***对所述心跳包的响应时间和缓存***对应的存储容量;若所述响应时间大于第一阈值或所述响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记,所述第一标记用于标识所述缓存***不响应数据请求;若所述存储容量大于第三阈值,若是,则设置对应的缓存***的第二标记,所述第二标记用于标识所述缓存***不响应数据存储请求。上述方法和***提高了缓存***响应数据请求的稳定性。

Description

缓存***管理方法和***
技术领域
本发明涉及通讯技术领域,特别是涉及一种缓存***管理方法和***。
背景技术
随着互联网的高速发展,用户的数量也急剧增加,对网站服务器的数据处理速度提出了更高的要求。缓存***(cache)是为了提高数据读取速度,降低频繁读取磁盘数据导致磁盘IO(读写)过高和处理器重复处理数据造成***资源浪费的一种缓存技术,目前,越来越多的互联网应用中都使用了缓存***来提高数据处理能力,例如,网站通过使用了Redis(一种基于内存、键值对的存储数据库)、Memcache(一种高性能的分布式的内存对象缓存***)等技术使得数据处理速度有了显著提高。
由于大量的使用cache,为了保持cache的稳定性、容灾性和响应速度,需要通过缓存管理***对cache进行有效的管理,传统的缓存管理***存在诸多缺点,例如,缓存***管理下的cache出现僵死或者出现缓存使用已满的情况下,会出现数据请求响应缓慢、以及响应超时后才能接收到返回错误等多种异常现象,影响了缓存***响应数据请求的稳定性,严重情况会导致整个缓存***瘫痪。
发明内容
基于此,有必要针对上述技术问题,提供一种能提高缓存***稳定性的缓存***管理方法和***。
一种缓存***管理方法,所述方法包括:
根据预设时间间隔定时向各缓存***发送心跳包;
获取所述缓存***对所述心跳包的响应时间和缓存***对应的存储容量;
若所述响应时间大于第一阈值,则设置对应的缓存***的第一标记;或所述响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记,所述第一标记用于标识所述缓存***不响应数据请求;
若所述存储容量大于第三阈值,若是,则设置对应的缓存***的第二标记,所述第二标记用于标识所述缓存***不响应数据存储请求。
在其中一个实施例中,所述方法还包括响应数据请求步骤,所述步骤具体包括:
接收数据请求;
根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***,所述缓存***是以键值对的形式缓存数据;
将所述缓存***响应所述数据请求得到的结果反馈。
在其中一个实施例中,所述数据请求为数据存储请求,所述数据存储请求中携带有键值对;所述根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***的步骤,包括:
获取所述键值对中的键,根据预设的映射方式将所述键映射为对应的缓存***标识;
判断所述缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应所述数据存储请求;
若否,则将所述数据存储请求发送到所述缓存***标识对应的缓存***进行响应。
在其中一个实施例中,所述数据请求为数据读取请求,所述数据读取请求中携带有键;所述根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***的步骤,包括:
根据预设的映射方式将所述键映射为对应的缓存***标识;
判断所述缓存***标识对应的缓存***是否设置了第一标记,若是,则从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求,
若否,则将所述数据读取请求发送到所述缓存***标识对应的缓存***进行响应。
在其中一个实施例中,在将所述缓存***响应所述数据请求得到的结果返回给所述客户端的步骤之后,还包括:
触发将所述缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件;
异步执行所述备份事件。
在其中一个实施例中,所述方法还包括:
记录所述缓存***响应所述数据请求过程中产生的操作日志;和/或,
记录异步执行所述数据备份事件中产生的操作日志。
一种缓存***管理***,所述***包括:
心跳包发送模块,用于根据预设时间间隔定时向各缓存***发送心跳包;
信息获取模块,用于获取所述缓存***对所述心跳包的响应时间和缓存***对应的存储容量;
第一标记设置模块,用于若所述响应时间大于第一阈值,则设置对应的缓存***的第一标记;或所述响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记,所述第一标记用于标识所述缓存***不响应数据请求;
第二标记设置模块,用于若所述存储容量大于第三阈值,若是,则设置对应的缓存***的第二标记,所述第二标记用于标识所述缓存***不响应数据存储请求。
在其中一个实施例中,所述***还包括数据请求响应模块,用于响应数据请求;所述数据请求响应模块包括:
数据请求接收模块,用于接收数据请求;
缓存***选取模块,用于根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***,所述缓存***是以键值对的形式缓存数据;
结果反馈模块,用于将所述缓存***响应所述数据请求得到的结果反馈。
在其中一个实施例中,所述数据请求为数据存储请求,所述数据存储请求中携带有键值对;所述缓存***选取模块包括:
第一标识映射模块,用于获取所述键值对中的键,根据预设的映射方式将所述键映射为对应的缓存***标识;
第一缓存***选取模块,用于判断所述缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应所述数据存储请求;若否,则将所述数据存储请求发送到所述缓存***标识对应的缓存***进行响应。
在其中一个实施例中,所述数据请求为数据读取请求,所述数据读取请求中携带有键;所述缓存***选取模块包括:
第二标识映射模块,用于根据预设的映射方式将所述键映射为对应的缓存***标识;
第二缓存***选取模块,用于判断所述缓存***标识对应的缓存***是否设置了第一标记,若是,则从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求,若否,则将所述数据读取请求发送到所述缓存***标识对应的缓存***进行响应。
在其中一个实施例中,所述***还包括:
事件触发模块,用于触发将所述缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件;
事件执行模块,用于异步执行所述备份事件。
在其中一个实施例中,所述***还包括:
第一日志记录模块,用于记录所述缓存***响应所述数据请求过程中产生的操作日志;和/或,
第二日志记录模块,用于记录异步执行所述数据备份事件中产生的操作日志。
上述缓存***管理方法和***,可以通过获取缓存***对心跳包的响应时间和缓存***对应的存储容量,对异常的缓存***设置标记,由于设置了第一标记的缓存***不响应数据请求,设置了第二标记的缓存***不响应数据存储请求,因此,保证了响应数据请求的缓存***都是稳定可靠的,提高了缓存***响应数据请求的稳定性。
附图说明
图1为一个实施例中缓存***管理方法的流程示意图;
图2为一个实施例中缓存***管理方法中响应客户端的数据请求的流程示意图;
图3为一个实施例中根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***步骤的流程示意图;
图4为另一个实施例中根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***步骤的流程示意图;
图5为一个实施例中缓存***管理***的结构示意图;
图6为一个实施例中数据请求响应模块的结构示意图;
图7为一个实施例中缓存***选取模块的结构示意图;
图8为另一个实施例中缓存***选取模块的结构示意图;
图9为另一个实施例中缓存***管理***的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供的一种缓存***管理方法,该方法包括如下步骤:
步骤101,根据预设时间间隔定时向各缓存***发送心跳包。
本实施例中,缓存***管理方法应用在对缓存***进行管理的管理端中,其中,管理端管理着至少一个缓存***。具体的,缓存***是指内存缓存***。管理端根据预设时间间隔周期性的向其管理下的各个缓存***发送心跳包,然后等待缓存***接收到心跳包后返回的数据包,根据返回的数据包来识别各缓存***的运行状态。若在预定时间范围内没有接收到返回的数据包,则表示该缓存***已不能正常工作,管理端直接断开与该缓存***的连接。
步骤102,获取缓存***对心跳包的响应时间和缓存***对应的存储容量。
本实施例中,响应时间是指管理端发送心跳包与接收到缓存***返回的数据包之间的时间距离。存储容量是指缓存***的总存储空间中已存储了数据的空间。具体的,存储容量是指缓存***中已存储数据的空间占总存储空间的百分比。记录发送心跳包时的第一时间,缓存***接收到心跳包后,会向管理端返回数据包,记录接收到缓存***返回的数据包的第二时间,该缓存***的响应时间为第二时间与第一时间的差值。通过数据包中包含的缓存***运行状态信息获取到缓存***的存储容量。
步骤103,若响应时间大于第一阈值,则设置对应的缓存***的第一标记;或响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记。
由于网络传输存在不稳定性,因此预先设定第一阈值和第二阈值判来断响应时间是否真正超。第一阈值是指设定的最大超时值,若响应时间超过第一阈值,表示响应时间的严重超并不是网络传输不稳定造成的,而是缓存***已不能正常响应数据请求了,进一步的,对缓存***设置第一标记。
第二阈值是指预先设定的次超时值,当响应时间处在第一阈值和第二阈值之间时,则记录响应时间小于第一阈值大于第二阈值出现的次数,若记录的次数大于预设次数时,则表示缓存***响应数据请求的速度太过缓慢,不能及时对数据请求做出响应,进一步的,对缓存***设置第一标记,第一标记用于标识缓存***不响应数据请求。管理端接收到客户端发送过来的数据请求后,不会选取设置了第一标记的缓存***来响应该数据请求。
步骤104,若存储容量大于第三阈值,则设置对应的缓存***的第二标记。
当存储容量大于预设的第三阈值时,则表示该缓存***已经不能再存储更多的数据了,进一步的,对缓存***设置第二标记。第二标记用于标识缓存***不响应数据存储请求。
上述缓存***管理方法,可以通过获取缓存***对心跳包的响应时间和缓存***对应的存储容量,对异常的缓存***设置标记,由于设置了第一标记的缓存***不响应数据请求,设置了第二标记的缓存***不响应数据存储请求,因此,保证了响应数据请求的缓存***都是稳定可靠的,提高了缓存***响应数据请求的稳定性和响应数据请求的效率。
在一个实施例中,设置了第一标记或第二标记的缓存***将向外发出警报,以帮助管理人员迅速定位到出现异常的缓存***。具体的,通过将设置了第一标记或第二标记的缓存***对应的缓存***标识以短信或邮件的形式通知管理人员,由管理人员做出相应处理,从而及时确保响应客户端的数据请求的缓存***都是运行良好的,方便了管理人员对缓存***的管理。
如图2所示,在一个实施例中,提供的一种缓存***管理方法,还包括响应客户端的数据请求的步骤,该步骤具体包括如下步骤:
步骤201,接收数据请求。
本实施例中,客户端向缓存***发送存储数据和读取数据的数据请求,管理端通过TCP或UDP协议与客户端进行通信,管理端接收到客户端发送过来的数据请求后,将确定响应该数据请求的缓存***。
步骤202,根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***。
预设的请求处理方式是指接收到数据请求后,管理端如何从管理下的缓存***中确定最佳的缓存***来响应数据请求的缓存***选取方式。例如,当响应数据请求对应的缓存***存在异常的情况下,管理端需要选取替代的缓存***来响应数据请求。
管理端在启动时会启动一个进程,该进程包含了多个线程,进程中包含的主线程负责管理着各个缓存***和响应客户端的数据请求,其它线程(线程池)作为辅助主线程承担着IO(读写)操作。接收到数据请求后,线程池用来处理数据请求时需要对缓存***进行的IO操作。异步处理数据请求是指管理端在同时接收到多个数据请求时,当遇到对缓存***的IO操作时管理端不会被挂起等待,而是将IO操作交给线程池来处理并继续向下执行,每个数据请求对应的IO操作,管理端都会在线程池中启动对应的线程来完成该数据请求的IO操作,IO操作将会得到并行执行从而提高了管理端处理数据请求的效率。通过异步处理数据请求使得管理端同时接受多个数据请求时不会被堵塞,减少了硬件资源的闲置,使得硬件资源被充分利用起来。
步骤203,将缓存***响应所述数据请求得到的结果反馈。
管理端将缓存***根据数据请求读取到的数据、存储数据成功或存储数据失败的提示消息返回给客户端。
如图3所示,在一个实施例中,步骤202,根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***包括:
步骤301,获取键值对中的键,根据预设的映射方式将键映射为对应的缓存***标识。
本实施例中,数据请求为数据存储请求,缓存***以键值对(key-value)的形式缓存数据。数据存储请求携带有键值对,key是指数据的编号,value是指存储的数据,key与value存在对应的关系。例如,若键值对为1001=“ABC”,其中key=1001 value=“ABC”,将1001=“ABC”存储在缓存***中。
预设的映射方式是指通过预设的运算方法对键进行相应运算,将运算结果映射为对应的缓存***标识。具体的,映射方式是指通过预设的散列法将键映射为缓存***标识。该散列方法包括但不限于对键进行求余运算。例如,管理端下有10个缓存***,缓存***的标识由1号到10号,若获取到的键值对中的key=1001 value=“ABC”,通过1001对10求余后得到的值为1,即1001=“ABC”将要存储到的缓存***对应的缓存***标识为1。
步骤302,判断缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则进入步骤303,若否,则进入步骤304。
本实施例中,获取到缓存***标识后,进一步的需要判断缓存***是否设置了第一标记或第二标记。若是,则表明该缓存***标识对应的缓存***存在异常,不能正常响应数据存储请求,进入步骤303中,若否,则表明该缓存***标识对应的缓存***是正常的,缓存***有足够大的存储容量,且能及时响应数据存储请求,进入步骤304中。
步骤303,从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应数据存储请求。
未设置第一标记的缓存***表示响应速度正常,未设置第二标记的缓存***表示缓存***存储容量足够。从未设置第一标记或第二标记的缓存***中选取合适的缓存***来响应数据存储请求。
步骤304,将数据存储请求发送到缓存***标识对应的缓存***进行响应。
当缓存***标识对应的缓存***是正常的,管理端将该数据存储请求发送至该缓存***标识对应的缓存***中,由缓存***对数据存储请求进行响应。
在另一个实施例中,如图4所示,步骤202,根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***包括:
步骤401,根据预设的映射方式将键映射为对应的缓存***标识。
本实施例中,数据请求为数据读取请求,该数据读取请求中携带有键,管理端接收到数据读取请求中携带的键后,根据预设的映射方式对键进行运算可以获取存储了键对应的值的缓存***对应的缓存***标识。具体的,预设的映射方式是指通过预设的散列法将键映射为缓存***标识。该散列方法包括但不限于对键进行求余运算。例如,管理端下有10个缓存***,缓存***的标识由1号到10号,若获取到的键值对中的key=1001 value=“ABC”,通过1001对10求余后得到的值为1,即通过缓存***标识为1的对应缓存***来读取key=1001对应的value。
步骤402,判断缓存***标识对应的缓存***是否设置了第一标记。若是,则进入步骤403,若否,则进入步骤404。
设置了第一标记的缓存***表示缓存***响应缓存,不能及时响应数据读取请求,进一步的,需要重新确定响应数据请求的缓存***,进入步骤403,若缓存***未设置第一标记,则表示该缓存***能够及时响应数据读取请求,进入步骤404。
步骤403,从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求。
缓存***中的数据在其它缓存***中存在多个副本,若通过预设的映射方式得到的缓存***标识对应的缓存***设置了第一标记,则在其它的未设置第一标记的缓存***中,获取备份了键对应的值的缓存***来响应数据请求。
步骤404,将数据读取请求发送到缓存***标识对应的缓存***进行响应。
当缓存***能正常响应数据读取请求时,管理端将数据读取请求发送到对应的缓存***,由缓存***来响应数据请求,并将响应得到的结果发送至管理端,管理端再将结果返回给客户端。
在一个实施例中,在步骤203,将缓存***响应所述数据请求得到的结果反馈之后,该方法还包括:
触发将缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件;异步执行备份事件。
本实施例中,客户端发送的数据请求处理完后,进一步的,触发对缓存***中的数据进行备份的数据备份事件,该数据为之前缓存***响应数据请求时操作的数据,其中该数据包括缓存***读取的数据或存储的数据。管理端异步执行数据备份事件使得多个数据备份事件能够同时被执行,加快了对数据备份事件的执行速度。
当响应数据请求的缓存***出现异常时,通过备份了数据的缓存***能及时响应数据请求,保证了客户端能及时获取到数据请求的结果,提高了缓存***的可靠性和可用性。
在一个实施例中,该方法还包括:记录缓存***响应数据请求过程中产生的操作日志。
操作日志中包含了数据请求类型信息、发送数据请求的客户端信息、响应数据请求的缓存***信息以及响应数据请求的时间信息等等。通过操作日志可以方便查询缓存***响应数据请求的历史记录。
在另一个实施例中,执行完数据备份事件后,该方法还包括:记录异步执行数据备份事件中产生的操作日志。
操作日志中包含了数据备份的具体时间,数据备份前的存储位置信息和数据备份后的存储位置信息等等。在缓存***遇到灾害出现数据丢失或者损坏的情况下,通过操作日志可以对数据进行恢复,提高了缓存***的容灾性。
在一个实施例中,管理端的数量可以有多个,每个管理端提供的接口相同,即管理端与管理端之间可以相互通信,管理端下管理的缓存管理***是可以动态扩张的,通过对管理端发送配置更新指令即可新增缓存***或剔除掉原缓存***。
当管理端不能正常工作的情况下,客户端发送的数据请求可绕过管理端直接发送给缓存***,由缓存***将响应数据请求的结果返回给客户端,使得客户端的数据请求能及时得到返回结果。具体的,管理端为Nodejs(一个可以快速构建网络服务及应用的平台),该Nodejs管理的缓存***包括但不限于Redis、Memcache等内存缓存***。
如图5所示,在一个实施例中,提供的一种缓存***管理***,该***包括:
心跳包发送模块50,用于根据预设时间间隔定时向各缓存***发送心跳包。
信息获取模块51,用于获取缓存***对心跳包的响应时间和缓存***对应的存储容量。
第一标记设置模块52,用于若响应时间大于第一阈值,则设置对应的缓存***的第一标记;或响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记。本实施例中,第一标记用于标识缓存***不响应数据请求。
第二标记设置模块53,用于若存储容量大于第三阈值,则设置对应的缓存***的第二标记。本实施例中,第二标记用于标识缓存***不响应数据存储请求。
如图6所示,在一个实施例中,缓存管理***还包括:数据请求响应模块54,用于响应客户端的数据请求。其中数据请求响应模块54包括:
数据请求接收模块540,用于接收数据请求。
缓存***选取模块541,用于根据预设的请求处理方式异步处理数据请求,选取出响应数据请求的缓存***。本实施例中,缓存***是以键值对的形式缓存数据。
结果反馈模块542,用于将缓存***响应所述数据请求得到的结果反馈。
在一个实施例中,如图7所示,缓存***选取模块541包括:
第一标识映射模块5410,用于获取键值对中的键,根据预设的映射方式将键映射为对应的缓存***标识。本实施例中,数据请求为数据存储请求,数据存储请求中携带有键值对。
第一缓存***选取模块5411,用于判断缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应数据存储请求;若否,则将数据存储请求发送到缓存***标识对应的缓存***进行响应。
在另一个实施例中,如图8所示,缓存***选取模块541包括:
第二标识映射模块5412,用于根据预设的映射方式将键映射为对应的缓存***标识。本实施例中,数据请求为数据读取请求,数据读取请求中携带有键。
第二缓存***选取模块5413,用于判断缓存***标识对应的缓存***是否设置了第一标记,若是,则从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求,若否,则将数据读取请求发送到缓存***标识对应的缓存***进行响应。
在一个实施例中,如图9所示,提供的缓存***管理***还包括:
事件触发模块55,用于触发将缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件。
事件执行模块56,用于异步执行备份事件。
第一日志记录模块57,用于记录缓存***响应数据请求过程中产生的操作日志。
第二日志记录模块58,用于记录异步执行数据备份事件中产生的操作日志。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种缓存***管理方法,所述方法包括:
根据预设时间间隔定时向各缓存***发送心跳包;
获取所述缓存***对所述心跳包的响应时间和缓存***对应的存储容量;
若所述心跳包的响应时间大于第一阈值,则设置对应的缓存***的第一标记;
或所述心跳包的响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记,所述第一标记用于标识所述缓存***不响应数据请求;
若所述缓存***对应的存储容量大于第三阈值,则设置对应的缓存***的第二标记,所述第二标记用于标识所述缓存***不响应数据存储请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括响应数据请求步骤,所述步骤具体包括:
接收数据请求;
根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***,所述缓存***是以键值对的形式缓存数据;
将所述缓存***响应所述数据请求得到的结果反馈。
3.根据权利要求2所述的方法,其特征在于,所述数据请求为数据存储请求,所述数据存储请求中携带有键值对;所述根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***的步骤,包括:
获取所述键值对中的键,根据预设的映射方式将所述键映射为对应的缓存***标识;
判断所述缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应所述数据存储请求;
若否,则将所述数据存储请求发送到所述缓存***标识对应的缓存***进行响应。
4.根据权利要求2所述的方法,其特征在于,所述数据请求为数据读取请求,所述数据读取请求中携带有键;所述根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***的步骤,包括:
根据预设的映射方式将所述键映射为对应的缓存***标识;
判断所述缓存***标识对应的缓存***是否设置了第一标记,若是,则从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求,
若否,则将所述数据读取请求发送到所述缓存***标识对应的缓存***进行响应。
5.根据权利要求2所述的方法,其特征在于,在将所述缓存***响应所述数据请求得到的结果反馈的步骤之后,还包括:
触发将所述缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件;
异步执行所述备份事件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
记录所述缓存***响应所述数据请求过程中产生的操作日志;和/或,
记录异步执行所述数据备份事件中产生的操作日志。
7.一种缓存***管理***,其特征在于,所述***包括:
心跳包发送模块,用于根据预设时间间隔定时向各缓存***发送心跳包;
信息获取模块,用于获取所述缓存***对所述心跳包的响应时间和缓存***对应的存储容量;
第一标记设置模块,用于若所述心跳包的响应时间大于第一阈值,则设置对应的缓存***的第一标记;或所述心跳包的响应时间小于第一阈值大于第二阈值出现的次数大于预设次数,则设置对应的缓存***的第一标记,所述第一标记用于标识所述缓存***不响应数据请求;
第二标记设置模块,用于若所述缓存***对应的存储容量大于第三阈值,则设置对应的缓存***的第二标记,所述第二标记用于标识所述缓存***不响应数据存储请求。
8.根据权利要求7所述的***,其特征在于,所述***还包括数据请求响应模块,用于响应数据请求;所述数据请求响应模块包括:
数据请求接收模块,用于接收数据请求;
缓存***选取模块,用于根据预设的请求处理方式异步处理所述数据请求,选取出响应所述数据请求的缓存***,所述缓存***是以键值对的形式缓存数据;
结果反馈模块,用于将所述缓存***响应所述数据请求得到的结果反馈。
9.根据权利要求8所述的***,其特征在于,所述数据请求为数据存储请求,所述数据存储请求中携带有键值对;所述缓存***选取模块包括:
第一标识映射模块,用于获取所述键值对中的键,根据预设的映射方式将所述键映射为对应的缓存***标识;
第一缓存***选取模块,用于判断所述缓存***标识对应的缓存***是否设置了第一标记或第二标记,若是,则从其它缓存***中选取未设置第一标记或第二标记的缓存***来响应所述数据存储请求;若否,则将所述数据存储请求发送到所述缓存***标识对应的缓存***进行响应。
10.根据权利要求8所述的***,其特征在于,所述数据请求为数据读取请求,所述数据读取请求中携带有键;所述缓存***选取模块包括:
第二标识映射模块,用于根据预设的映射方式将所述键映射为对应的缓存***标识;
第二缓存***选取模块,用于判断所述缓存***标识对应的缓存***是否设置了第一标记,若是,则从其它的未设置第一标记的缓存***中选取备份了键对应的值的缓存***来响应数据请求,若否,则将所述数据读取请求发送到所述缓存***标识对应的缓存***进行响应。
11.根据权利要求8所述的***,其特征在于,所述***还包括:
事件触发模块,用于触发将所述缓存***响应数据请求时操作的数据拷贝到其它缓存***中的数据备份事件;
事件执行模块,用于异步执行所述备份事件。
12.根据权利要求11所述的***,其特征在于,所述***还包括:
第一日志记录模块,用于记录所述缓存***响应所述数据请求过程中产生的操作日志;和/或,
第二日志记录模块,用于记录异步执行所述数据备份事件中产生的操作日志。
CN201410467019.7A 2014-09-12 2014-09-12 缓存***管理方法和*** Active CN105471616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410467019.7A CN105471616B (zh) 2014-09-12 2014-09-12 缓存***管理方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410467019.7A CN105471616B (zh) 2014-09-12 2014-09-12 缓存***管理方法和***

Publications (2)

Publication Number Publication Date
CN105471616A CN105471616A (zh) 2016-04-06
CN105471616B true CN105471616B (zh) 2019-02-12

Family

ID=55608930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410467019.7A Active CN105471616B (zh) 2014-09-12 2014-09-12 缓存***管理方法和***

Country Status (1)

Country Link
CN (1) CN105471616B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648931A (zh) * 2016-12-12 2017-05-10 贵阳朗玛信息技术股份有限公司 一种日志信息记录的方法及装置
CN106789431B (zh) 2016-12-26 2019-12-06 ***股份有限公司 一种超时监控方法及装置
CN110413209B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 管理存储***的方法和设备
CN109194451B (zh) * 2018-08-17 2020-09-15 北汽福田汽车股份有限公司 车载终端的数据补发方法及车载终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523806A (zh) * 2006-08-03 2009-09-02 思杰***有限公司 用于使用动态响应时间来确定网络服务的响应度的方法和设备
CN101646188A (zh) * 2009-09-11 2010-02-10 杭州华三通信技术有限公司 一种动态检测设备的方法及设备
CN103618625A (zh) * 2013-11-28 2014-03-05 金蝶软件(中国)有限公司 一种微博中网络资源的控制方法、装置和***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523806A (zh) * 2006-08-03 2009-09-02 思杰***有限公司 用于使用动态响应时间来确定网络服务的响应度的方法和设备
CN101646188A (zh) * 2009-09-11 2010-02-10 杭州华三通信技术有限公司 一种动态检测设备的方法及设备
CN103618625A (zh) * 2013-11-28 2014-03-05 金蝶软件(中国)有限公司 一种微博中网络资源的控制方法、装置和***

Also Published As

Publication number Publication date
CN105471616A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN103488546B (zh) 一种支持多级别数据和数据库在线并发备份与恢复方法
CN105357296A (zh) 一种Docker云平台下弹性缓存***
CN104219327B (zh) 一种分布式缓存***
CN105471616B (zh) 缓存***管理方法和***
CN105740418A (zh) 一种基于文件监控和消息推送的实时同步***
CN106506490B (zh) 一种分布式计算控制方法以及分布式计算***
CN103532822B (zh) 消息投递的管理方法、服务器和***
CN106850710A (zh) 一种数据云存储***、客户终端、存储服务器及应用方法
WO2018214887A1 (zh) 数据存储方法、存储服务器、存储介质及***
CN101408889A (zh) 一种性能监控的方法、装置及***
CN105373899A (zh) 一种服务器资产管理的方法及装置
US20100275219A1 (en) Scsi persistent reserve management
CN102171995A (zh) 服务器故障时的报文处理方法及路由器
KR101211207B1 (ko) 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법
WO2012171349A1 (zh) 一种分布式自增计数的实现方法、装置及***
CN111818117A (zh) 数据更新的方法、装置、存储介质及电子设备
CN102868727A (zh) 一种实现逻辑卷高可用性的方法
CN108989106A (zh) 一种分布式集群的数据处理方法、装置及***
CN113330426B (zh) 一种备份数据的方法、装置和***
CN113259493B (zh) 基于Ukey机柜的Ukey信息获取方法、装置、设备和存储介质
CN106776151A (zh) Samba集群tdb数据库记录备份方法、装置及***
CN102255921B (zh) 一种媒体流存储方法和数据管理服务器
CN113946487A (zh) 一种故障场景下自主服务降级恢复的实现方法及***
CN111756826A (zh) 一种dlm的锁信息传输方法以及相关装置
US11811894B2 (en) Reduction of data transmissions based on end-user context

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant