[发明专利]memcache分布式缓存方法无效
申请号: | 201110418959.3 | 申请日: | 2011-12-15 |
公开(公告)号: | CN103166997A | 公开(公告)日: | 2013-06-19 |
发明(设计)人: | 王专;吴志祥;张海龙;马和平;吴剑;郭凤林;王晓钟;庞绍进 | 申请(专利权)人: | 同程网络科技股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 南京苏科专利代理有限责任公司 32102 | 代理人: | 陈忠辉 |
地址: | 215021 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | memcache 分布式 缓存 方法 | ||
技术领域
本发明涉及一种缓存方法,尤其涉及一种memcache分布式缓存方法。
背景技术
单台服务器内存有限,而且如果服务器down机的话,内存中的数据会丢失,此时数据库的压力会很大,短时间内无法迅速恢复缓存。此时就需要一种缓存冗余方案。所以需要用多台服务器组成分布式 解决单台机 内存限制,数据冗余,及性能扩展问题。
Memcache 是一个非常优秀的缓存加速系统,和 Squid 的前端缓存加速不同,它是通过基于内存缓存对象来减少数据库查询的方式改善网站系统的反应,而其中最吸引人的一个特性就是支持分布式部署;也就是说可以在一群机器上建立一堆 Memcache 服务,每个服务可以根据具体服务器的硬件配置使用不同大小的内存块,这样一来,理论上可以建立一个无限巨大的基于内存的 cache storage(缓存存储) 系统。
Memcache主要的cache机制是LRU(最近最少用)算法+超时失效。当存数据到Memcache中,可以指定该数据在缓存中可以呆多久,永久或一个时间段。如果Memcache的内存不够用了,过期的缓存单元会优先被替换,接着就轮到最老的未被使用的缓存单元。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种memcache分布式缓存方法。
本发明的目的通过以下技术方案来实现:
memcache分布式缓存方法,其特征在于包括以下步骤:步骤①,缓存获取,采用客户端通过请求名字结点服务器返回唯一键对应的缓存结点服务器的一个或多个ip地址,客户端获取第一个ip,再请求对应的名字结点服务器,获得对应的缓存数据,如果第一个ip中获取不到数据,则使用第下一个ip地址请求对应的名字结点服务器,直到获取到缓存数据遍历完ip列表为止。 步骤②,缓存写入,客户端从某个数据源获取数据,客户端通过请求名字结点服务器,令名字结点服务器返回唯一键所对应的缓存结点服务器的一个或多个ip地址.步骤③,客户端获取第一个ip,将缓存写入对应的缓存结点服务器。客户端只要配置名字结点服务器,缓存结点服务器的ip返回是由名字结点服务器动态返回的。
上述的memcache分布式缓存方法,其中:客户端用名字结点服务器做唯一键到缓存结点服务器的映射中,通过一致性hash算法,定时对缓存结点服务器进行心跳检测(判断是否能正常访问),当某台缓存结点服务器不能访问时,名字结点服务器会屏蔽此缓存结点服务器的访问(避免返回无效的给客户端),发送报警信息给管理员及时排查问题。
进一步地,上述的memcache分布式缓存方法,其中:所述的缓存结点服务器对应拥有备份机,将多个ip地址备份到备份机上。具体来说,客户端根据备份算法将数据写入名字服务器返回的ip列表对应的服务器上,保持缓存数据至少有两份。
更进一步地,上述的memcache分布式缓存方法,其中:步骤①所述的数据包括有数据库、接口、文件。
更进一步地,上述的memcache分布式缓存方法,其中:步骤③如果ip有多个,则客户端可以根据缓存重要性,判断缓存数据是否需要冗余,如果需要冗余,则根据对应的算法写入一个或多个ip对应的缓存结点服务器中。
再进一步地,上述的memcache分布式缓存方法,其中:所述的客户端为memcached java客户端。
本发明技术方案的优点主要体现在:有效解决了单台机的内存限制。同时,可以有效解决数据冗余。并且,能够提升性能扩展。
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
具体实施方式
memcache分布式缓存方法,其与众不同之处在于包括以下步骤:
首先是缓存获取。具体来说,采用客户端通过请求名字结点服务器返回唯一键对应的缓存结点服务器的一个或多个ip地址,客户端获取第一个ip,再请求对应的名字结点服务器,获得对应的缓存数据。
在此期间,如果第一个ip中获取不到数据,则使用第下一个ip地址请求对应的名字结点服务器,直到获取到缓存数据遍历完ip列表为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同程网络科技股份有限公司,未经同程网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110418959.3/2.html,转载请声明来源钻瓜专利网。