本发明专利技术提供了一种数据库管理方法与装置,其中所述方法包括:查询数据区中的键,所述键具有至少一个成员;判断所述至少一个成员中是否存在待删除的成员;若是,则依据判断结果删除所述待删除的成员。通过本发明专利技术提供的数据库管理方案,能够缩短键删除成功的响应时间减轻服务器的负载。
【技术实现步骤摘要】
本专利技术涉及数据库
,特别是涉及一种数据库管理方法与装置。
技术介绍
redis是一个key-value(即键值)存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set—有序集合)和hash(哈希类型)。这些数据类型都支持增加键、删除键、对键取交集并集等操作。无论哪种存储的value类型,在存储时一个键均可包含多个成员。目前基于redis的数据库基于其所支持存储数据类型的多样性,已被广泛使用。现有的数据库管理方案,当接收到对某一键的删除操作后,需要服务器后台管理线程即时访问数据库,依次从数据库中删除该键的各个成员,并且,每次访问数据库仅能删除一个成员。那么,若待删除的键包含的成员数量非常多,则管理线程需要多次访问数据库才能够完成对待删除键的删除操作。不仅如此,整个删除键的操作需要在服务器后台进行操作,导致服务器的负载增加。可见,现有的数据库管理方案在删除键操作时,不仅需要长时间等待才能够得到删除成功的响应结果,还需即时在服务器后台执行键删除操作增加服务器的负载。
技术实现思路
鉴于现有的数据库管理方案在删除键时需要即时在服务器后台执行键删除操作增加服务器负载的问题,提出了本专利技术以便提供一种克服上述问题的数据库管理方法与装置。依据本专利技术的一个方面,提供了一种数据库管理方法,包括:查询数据区中的键,所述键具有至少一个成员;判断所述至少一个成员中是否存在待删除的成员;若是,则依据判断结果删除所述待删除的成员。优选地,所述键具有对应的键版本信息,所述成员具有对应的成员版本信息,以及所述判断所述至少一个成员中是否存在待删除的成员具体包括:判断所述成员对应的成员版本信息是否与所述键的当前键版本信息匹配,所述当前键版本信息为所述键对应的键版本信息中最新的键版本信息;若否,则确定所述成员为待删除的成员。优选地,判断所述成员对应的成员版本信息是否与所述键对应的当前键版本信息匹配具体包括:获取所述键对应的所有键版本信息;通过比较选出最新的键版本信息以作为所述当前键版本信息;比较所述成员版本信息与所述当前键版本信息;若比较结果显示两者一致,则判断两者匹配。优选地,所述键版本信息存储在与其对应的键的元信息中。优选地,当一个数据区与另一数据区合并时,对合并后的数据区执行所述查询数据区中的键的步骤。优选地,当接收到对所述数据区的数据清理请求时,执行所述查询数据区中的键的步骤。优选地,所述方法还包括:接收至少一个所述键,并将接收的所述键保存在所述数据区中,其中所述键具有对应的第一键版本信息,所述成员具有对应的第一成员版本信息,且对于每一个所述键,所述第一键版本信息与所述第一成员版本信息匹配。优选地,所述方法还包括:若接收到对某一键的预删除指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,其中所述第二键版本信息与所述第一成员版本信息不匹配。优选地,所述方法还包括:若接收到对某一键某一成员的预删除指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,并将该键的、除该成员外的其他成员的所述第一成员版本信息更新为较新的第二成员版本信息,其中所述第二键版本信息与所述第一成员版本信息不匹配且所述第二键版本信息与所述第二成员版本信息匹配。优选地,所述方法还包括:若接收到对某一键的更新指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,并将该键的成员对应的所述第一成员版本信息更新为较新的第二成员版本信息,其中所述第二键版本信息与所述第二成员版本信息匹配。优选地,所述对某一键的更新指示包括:对该键的已有成员的值进行更新的指示,和/或对该键增加新成员的指示。依据本专利技术的另一个方面,提供了一种数据库管理装置,包括:查询模块,用于查询数据区中的键,所述键具有至少一个成员;判断模块,用于判断所述至少一个成员中是否存在待删除的成员;执行模块,用于若所述判断模块的判断结果为是时,则依据判断结果删除所述待删除的成员。优选地,所述键具有对应的键版本信息,所述成员具有对应的成员版本信息,以及所述判断模块包括:版本信息判断模块,用于判断所述成员对应的成员版本信息是否与所述键的当前键版本信息匹配,所述当前键版本信息为所述键对应的键版本信息中最新的键版本信息;待删除成员确定模块,用于若所述版本信息判断模块的判断结果为否时,则确定所述成员为待删除的成员。优选地,所述版本信息判断模块包括:版本信息获取子模块,用于获取所述键对应的所有键版本信息;最新版本信息确定子模块,用于通过比较选出最新的键版本信息以作为所述当前键版本信息;比较子模块,用于比较所述成员版本信息与所述当前键版本信息;确定子模块,用于若比较结果显示两者一致,则判断两者匹配。优选地,所述键版本信息存储在与其对应的键的元信息中。优选地,当一个数据区与另一数据区合并时,调用所述查询模块对合并后的数据区执行所述查询数据区中的键的操作。优选地,当接收到对所述数据区的数据清理请求时,调用所述查询模块执行所述查询数据区中的键的操作。优选地,所述装置还包括:键信息接收模块,用于接收至少一个所述键,并将接收的所述键保存在所述数据区中,其中所述键具有对应的第一键版本信息,所述成员具有对应的第一成员版本信息,且对于每一个所述键,所述第一键版本信息与所述第一成员版本信息匹配。优选地,所述装置还包括:键预删除指示接收模块,用于若接收到对某一键的预删除指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,其中所述第二键版本信息与所述第一成员版本信息不匹配。优选地,所述装置还包括:成员预删除指示接收模块,用于若接收到对某一键某一成员的预删除指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,并将该键的、除该成员外的其他成员的所述第一成员版本信息更新为较新的第二成员版本信息,其中所述第二键版本信息与所述第一成员版本信息不匹配且所述第二键版本信息与所述第二成员版本信息匹配。优选地,所述装置还包括:键更新指示接收模块,用于若接收到对某一键的更新指示,则将该键对应的第一键版本信息更新为较新的第二键版本信息,并将该键的成员对应的所述第一成员版本信息更新为较新的第二成员版本信息,其中所述第二键版本信息与所述第二成员版本信息匹配。优选地,所述对某一键的更新指示包括:对该键的已有成员的值进行更新的指示,和/或对该键增加新成员的指示。本专利技术实施例提供的数据库管理方案,在接收到对数据库中存储的某键的操作时,仅会在服务器前端对该键的版本信息进行更新,对键的版本信息进行更新后由于数据库中存储的键为未更新的键,所以再次访问该键时则无法得到数据,变向实现对键的删除;相较于现有的需要逐个从数据库中删除键中成员的方案,本专利技术实施例能够缩短键删除成功的响应时间。而本专利技术实施例具体地对数据库中的键的成员进行删除操作时,通过查询数据区中的键,判断成员对应的成员版本信息是否与键的当前键版本信息匹配,若不匹配,则确定该成员为待删除的成员,将待删除成员删除。可见,数据库中键的成员的删除操作时在数据库底层进行数据区合并时执行的,并不会占用服务器的负载。综上可知,本专利技术实施例提供的数据库管理方案,既能够缩短删除成功的响应时间,还不会本文档来自技高网...
【技术保护点】
一种数据库管理方法,包括:查询数据区中的键,所述键具有至少一个成员;判断所述至少一个成员中是否存在待删除的成员;若是,则依据判断结果删除所述待删除的成员。
【技术特征摘要】
【专利技术属性】
技术研发人员:赵安安,陈宗志,宋昭,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。