数据查询方法及装置制造方法及图纸

技术编号:28623420 阅读:16 留言:0更新日期:2021-05-28 16:19
本公开关于一种数据查询方法及装置,其中方法包括:接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。这样,在请求缓存列表时,通过对缓存列表进行一次性查询预设字符和目标数据,可减少对缓存列表的请求次数,降低缓存列表的请求量,减少Redis缓存的请求压力。

【技术实现步骤摘要】
数据查询方法及装置
本公开涉及计算机
,尤其涉及一种数据查询方法及装置。
技术介绍
远程字典服务(RemoteDictionaryServer,Redis)是一种远程内存型数据库,支持存储的值类型很多,包括字符串、链表、集合、有序集合和哈希类型,Redis缓存列表中的数据都是缓存在内存中。服务端经常使用Redis缓存列表中的有序集合(zset)数据结构来保存列表数据,如一个视频作品下的评论ID列表,一个用户发布过的视频ID列表等。相关技术中,在从Redis缓存列表中查询数据时,会先使用zset的分数查询命令即zscore命令从Redis缓存列表中查询是否存在特殊字符,如空占位符,如果查询到存在特殊字符,则再次使用zset的列表查询命令从Redis缓存列表查询所需数据。可见,相关技术中的数据查询方式需对Redis缓存列表进行至少两次查询请求,导致Redis缓存列表的请求量增加。
技术实现思路
本公开提供一种数据查询方法及装置,以至少解决相关技术中的数据查询方式需对Redis进行至少两次查询请求,导致Redis的请求量增加的问题。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种数据查询方法,包括:接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。<br>可选的,所述在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果,包括:在查询到所述缓存列表中存在所述预设字符且存在所述目标数据的情况下,向所述客户端返回查询到的所述目标数据。可选的,所述在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果,包括:在查询到所述缓存列表中仅存在所述预设字符的情况下,向所述客户端返回所述缓存列表中数据为空且数据库中数据也为空的消息。可选的,所述从所述缓存列表中查询预设字符和所述目标数据之后,所述方法还包括:在查询到所述缓存列表中不存在所述预设字符的情况下,从数据库中加载数据至所述缓存列表中,并在所述缓存列表中添加所述预设字符。可选的,所述从所述缓存列表中查询预设字符和所述目标数据,包括:从所述缓存列表的起始位置开始按序查询,查询所述起始位置的值是否为预设字符;在查询到所述起始位置的值为预设字符的情况下,继续从所述缓存列表中查询所述目标数据。可选的,所述查询所述起始位置的值是否为预设字符,包括:在所述缓存列表为倒序列表的情况下,查询所述倒序列表的起始位置的值是否为第一预设值,其中,所述第一预设值为所述倒序列表中的最大值;在所述缓存列表为正序列表的情况下,查询所述正序列表的起始位置的值是否为第二预设值,其中,所述第二预设值为所述正序列表中的最小值。根据本公开实施例的第二方面,提供一种数据查询装置,包括:接收模块,被配置为执行接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;查询模块,被配置为执行响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;发送模块,被配置为执行在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。可选的,所述发送模块被配置为执行在查询到所述缓存列表中存在所述预设字符且存在所述目标数据的情况下,向所述客户端返回查询到的所述目标数据。可选的,所述发送模块被配置为执行在查询到所述缓存列表中仅存在所述预设字符的情况下,向所述客户端返回所述缓存列表中数据为空且数据库中数据也为空的消息。可选的,所述数据查询装置还包括:处理模块,被配置为执行在查询到所述缓存列表中不存在所述预设字符的情况下,从数据库中加载数据至所述缓存列表中,并在所述缓存列表中添加所述预设字符。可选的,所述查询模块包括:第一查询单元,被配置为执行从所述缓存列表的起始位置开始按序查询,查询所述起始位置的值是否为预设字符;第二查询单元,被配置为执行在查询到所述起始位置的值为预设字符的情况下,继续从所述缓存列表中查询所述目标数据。可选的,在所述缓存列表为倒序列表的情况下,所述第一查询单元被配置为执行查询所述倒序列表的起始位置的值是否为第一预设值,其中,所述第一预设值为所述倒序列表中的最大值;在所述缓存列表为正序列表的情况下,所述第一查询单元被配置为执行查询所述正序列表的起始位置的值是否为第二预设值,其中,所述第二预设值为所述正序列表中的最小值。根据本公开实施例的第三方面,提供一种数据查询装置,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述第一方面所述的数据查询方法。根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由数据查询装置执行时,使得所述数据查询装置能够执行上述第一方面所述的数据查询方法。根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序或指令,当所述计算机程序或指令被处理器执行时实现上述第一方面所述的数据查询方法。本公开的实施例提供的技术方案至少带来以下有益效果:接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。这样,在请求缓存列表时,通过对缓存列表进行一次性查询预设字符和目标数据,可减少对缓存列表的请求次数,降低缓存列表的请求量,减少缓存列表的请求压力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。图1是根据一示例性实施例示出的相关技术中查询Redis缓存数据的流程图。图2是根据一示例性实施例示出的相关技术中的Redis缓存列表的数据结构示意图。图3是根据一示例性实施例示出的一种数据查询方法的流程图。图4是根据一示例性实施例示出的Redis缓存列表的数据结构示意图。图5是根据一示例性实施例示出的一种数据查询装置的框图。图6是根据一示例性实施例示出的另一种数据查询装置的框图。具体实施方式为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。需要说明的是,本公开的说明书和权利要本文档来自技高网...

【技术保护点】
1.一种数据查询方法,其特征在于,包括:/n接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;/n响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;/n在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。/n

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:
接收客户端发送的数据查询指令,其中,所述数据查询指令用于指示从缓存列表中查询目标数据;
响应于所述数据查询指令,从所述缓存列表中查询预设字符和所述目标数据;
在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果。


2.根据权利要求1所述的方法,其特征在于,所述在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果,包括:
在查询到所述缓存列表中存在所述预设字符且存在所述目标数据的情况下,向所述客户端返回查询到的所述目标数据。


3.根据权利要求1所述的方法,其特征在于,所述在查询到所述缓存列表中存在所述预设字符的情况下,向所述客户端返回对所述目标数据的查询结果,包括:
在查询到所述缓存列表中仅存在所述预设字符的情况下,向所述客户端返回所述缓存列表中数据为空且数据库中数据也为空的消息。


4.根据权利要求1所述的方法,其特征在于,所述从所述缓存列表中查询预设字符和所述目标数据之后,所述方法还包括:
在查询到所述缓存列表中不存在所述预设字符的情况下,从数据库中加载数据至所述缓存列表中,并在所述缓存列表中添加所述预设字符。


5.根据权利要求1所述的方法,其特征在于,所述从所述缓存列表中查询预设字符和所述目标数据,包括:
从所述缓存列表的起始位置开始按序查询,查询所述起始位置的值是否为预设字符;
在查询到所述起始位置的值为预设字符的情况下...

【专利技术属性】
技术研发人员:刘正阳
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:北京;11

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

1