一种实时更新缓存的方法和系统技术方案

技术编号:6930559 阅读:231 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于搜索技术领域,尤其涉及一种实时更新缓存的方法和系统。本发明专利技术实时更新缓存的方法包括:步骤a:在资源管理服务器增加一个更新缓存功能;步骤b:判断资源记录是否发生变化,如果资源记录发生变化,执行步骤c;如果资源记录没有发生变化,结束本次缓存更新;步骤c:将新的资源记录加入数据库中,并实时更新缓存列表中的缓存数据。本发明专利技术的技术方案既可以保证发生变化的资源记录能得到实时的更新,又不需要采用一天过期的机制,减少了服务器端每一天都要对所有关键字重新在数据库中搜索花费的时间,提升用户的使用体验。

【技术实现步骤摘要】

本专利技术属于搜索
,尤其涉及一种实时更新缓存的方法和系统
技术介绍
目前,在移动互联的应用业务中,关键字搜索是一个比较常见的业务。用户提交关键字搜索,在服务器端需要做多个子产品匹配,如用户搜索“刘德华”,服务器端需要匹配的子产品可能有音乐、铃声、电子书、视频、图片、新闻、八卦等。因为每个子产品资源记录都是单独存储在一个数据表中的,所以,当进行关键字搜索时,服务器需要分别对每一个子产品的数据表进行搜索,最终才汇总出用户需要的全部搜索结果。现有技术的搜索方法主要包括两种,第一种搜索方法为用户每一次提交关键字搜索,服务器端都去各个子产品的数据表搜索结果。例如假定用户提交的关键字需要匹配 10个子产品,每一个子产品数据表的模糊搜索都可能花费1秒的时间,那么,10个子产品的数据表搜索就要花费掉10秒左右的时间,而且是每一次用户提交,都要重新进行搜索,这种搜索方法会导致返回搜索结果太慢,影响用户使用体验,并增大数据库的负荷。第二种搜索方法是第一种方法的优化,采用一天过期的缓存机制。即将某个关键字搜索结果缓存起来,待后面的用户再来搜索该关键字时,不用去数据表中搜索,直接将缓存中的搜索结果返回给用户,同时,为了保证数据更新,在一天后该关键字的缓存会删除掉,当用户再来搜索该关键字时,服务器端会重新去数据表中搜索结果返回给用户,并将该搜索结果缓存起来,重新实行一天过期的缓存机制。这种采用一天过期的缓存机制的方法虽然大大减少了返回搜索结果给部分用户的时间和减少了数据库的负荷,但当数据表的资源记录有变化(增加、修改和删除)时,缓存数据得不到实时的更新,每天还是至少有一个用户需要花费较长的等待时间去数据表中重新搜索结果,也会影响用户的使用体验。显然, 这种关键字搜索方法还是有待优化的。
技术实现思路
本专利技术提供了一种实时更新缓存的方法和系统,旨在解决的现有技术中由于缓存数据得不到实时更新影响用户使用体验的问题。本专利技术是这样实现的,一种实时更新缓存的方法,包括步骤a 在资源管理服务器增加更新缓存功能;步骤b 判断资源记录是否发生变化,如果资源记录发生变化,执行步骤c ;如果资源记录没有发生变化,结束本次缓存更新;步骤c 将新的资源记录加入数据库中,并实时更新缓存列表中的缓存数据。本专利技术的技术方案还包括所述步骤C具体还包括获取发生变化的资源记录对应的搜索关键字,并将该搜索关键字加入资源更新列表中。本专利技术的技术方案还包括所述步骤c具体还包括判断缓存服务器中是否存在缓存列表,如果存在缓存列表,则遍历缓存列表;如果不存在缓存列表,结束本次缓存更新。本专利技术的技术方案还包括所述步骤c具体还包括遍历缓存列表,判断缓存列表中是否有缓存关键字,如果缓存列表中没有缓存关键字,结束本次缓存更新;如果缓存列表中有缓存关键字,取出一个缓存关键字,并判断资源更新列表中是否包含该缓存关键字。本专利技术的技术方案还包括所述步骤c还包括如果资源更新列表中包含该缓存关键字,查询数据库重新搜索该缓存关键字对应的新的搜索结果,删除缓存列表中该缓存关键字的缓存数据,将新的搜索结果加入到缓存列表中;如果关键字更新列表中不包含该缓存关键字,则重新遍历缓存列表。本专利技术的技术方案还包括在所述步骤c后还包括接收用户的关键字搜索请求, 判断缓存服务器的缓存列表中是否存在该关键字以及对应的搜索结果缓存,如果缓存列表中存在该关键字以及对应的搜索结果缓存,从缓存列表中读取该关键字对应的搜索结果并输出到移动终端用户;如果缓存列表中不存在该关键字以及对应的搜索结果缓存,则通过查询数据库得到该关键字对应的搜索结果,并将该关键字以及对应的搜索结果加入缓存列表中,并输出到移动终端用户。本专利技术采取的另一技术方案为一种实时更新缓存的系统,包括缓存服务器、数据库和资源管理服务器,所述缓存服务器用于缓存关键字以及该关键字所对应的搜索结果; 所述资源管理服务器用于进行资源编辑操作,所述资源管理服务器还包括缓存更新模块, 所述缓存更新模块包括第一判断单元和数据更新单元,所述第一判断单元用于判断资源记录是否发生变化,如果资源记录发生变化,通过数据更新单元更新缓存数据;如果资源记录没有发生变化,结束本次缓存更新;所述数据更新单元用于将新的资源记录加入数据库中,并实时更新缓存列表中的缓存数据。本专利技术的技术方案还包括所述实时更新缓存的系统还包括移动终端和web服务器,所述移动终端用于向Web服务器提交关键字请求搜索结果;所述Web服务器用于接收移动终端提交的关键字搜索结果请求,并返回搜索结果给移动终端。本专利技术的技术方案还包括所述缓存更新模块还包括资源搜索单元,所述资源搜索单元用于通过搜索条件得出发生变化的资源记录对应的搜索关键字,并将该搜索关键字加入资源更新列表中。本专利技术的技术方案还包括所述缓存更新模块还包括第二判断单元、第三判断单元和第四判断单元,所述第二判断单元用于判断缓存服务器中是否存在缓存列表,如果存在缓存列表,通过第三判断单元遍历缓存列表;如果不存在缓存列表,结束本次缓存更新;所述第三判断单元用于遍历缓存列表,判断缓存列表中是否有缓存关键字,如果缓存列表中有缓存关键字,通过第四判断单元判断资源更新列表中是否包含该缓存关键字;如果缓存列表中没有缓存关键字,结束本次缓存更新;所述第四判断单元用于取出一个缓存关键字,并判断资源更新列表中是否包含该缓存关键字,如果资源更新列表中包含该缓存关键字,通过数据更新单元重新搜索数据库; 如果关键字更新列表中不包含该缓存关键字,则通过第三判断单元重新遍历缓存列表。本专利技术的技术方案具有如下优点或有益效果本专利技术实时更新缓存的方法和系统通过在资源管理服务器中增加更新缓存功能,当资源有变化时,程序会判断变化的资源是否会影响到缓存列表中关键字的搜索结果,如果会影响,则资源管理后台会重新搜索数据库取得最新的搜索结果,并替换原来在缓存列表中的缓存数据;本专利技术既可以保证发生变化的资源记录能得到实时的更新,又不需要采用一天过期的机制,减少了服务器端每一天都要对所有关键字重新在数据库中搜索花费的时间,提升用户的使用体验。附图说明附图1是本专利技术第一实施例的实时更新缓存的方法的流程图;附图2是本专利技术实时更新缓存的方法的用户请求关键字搜索结果的过程的流程图;附图3是本专利技术第二实施例的实时更新缓存的方法的流程图;附图4是本专利技术第一实施例的实时更新缓存的系统的结构示意图;附图5是本专利技术第二实施例的实时更新缓存的系统的结构示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。请参阅图1,是本专利技术第一实施例的实时更新缓存的方法的流程图。本专利技术第一实施例的实时更新缓存的方法包括以下步骤步骤100 在资源管理服务器增加一个更新缓存功能;在步骤100中,资源管理服务器用于后台编辑人员进行资源编辑操作,现有的资源管理服务器只能做资源记录的增加、修改和删除操作,本专利技术则在资源管理服务器中增加一个更新缓存功能,该更新缓存功能在判断到资源记录有变化(增加、修改和删除)时, 会实时更新缓存服务器中缓存列表的缓存数据;其中,缓存列表用于缓存关键字以及该关键字所对应的搜索结果。本文档来自技高网
...

【技术保护点】
1.一种实时更新缓存的方法,包括步骤a:在资源管理服务器增加更新缓存功能;步骤b:判断资源记录是否发生变化,如果资源记录发生变化,执行步骤c;如果资源记录没有发生变化,结束本次缓存更新;步骤c:将新的资源记录加入数据库中,并实时更新缓存列表中的缓存数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:鲁林
申请(专利权)人:深圳市五巨科技有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1