本发明涉及计算机,尤其涉及一种数据处理方法、数据处理装置及相关设备。
背景技术:
1、键-值(key-value)数据库是一种以键值对储存数据的一种数据库,远程字典服务(remote dictionary server,redis)是一个开源的使用的key-value数据库。redis支持储存的数据类型一共有五种,分别为字符串(string)、链表(list)、集合(set)、有序集合(sorted set)和哈希(hash),每一种类型的数据分别对应着不同的应用场景。
2、string类型使用键(key)和值(value)储存数据,string类型的每一个key均对应一个value。hash类型使用key、域(field)和value储存数据,hash类型的每一个key可以对应多个field,而每个field可以设置一个value。
3、redis提供有多种命令类型,用于对数据执行不同的操作。但是,redis中部分的命令仅针对单个类型的数据,即针对hash类型的命令仅能对hash类型的数据进行操作,同样的,针对string类型的命令仅能对string类型的数据进行操作。例如,redis可以通过设置每个key的过期时间,对每个数据的生命周期进行管理。redis支持对每个string类型的数据设置一个过期时间,但对于hash类型的数据类型而言,redis仅支持对每个key设置一个过期时间,而不能对key内的每一个field设置过期时间。
4、由于部分命令仅能对固定类型的数据进行操作,使得redis对数据进行操作的灵活度较低。
技术实现思路
1、本发明实施例提供一种数据处理方法、数据处理装置及相关设备,以解决部分命令仅能对固定类型的数据进行操作,使得redis对数据进行操作的灵活度较低的问题。
2、第一方面,本发明实施例提供了一种数据处理方法,包括:
3、接收到第一命令的情况下,获取所述第一命令携带的第一键参数和n个域信息,n为正整数;
4、确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,所述第一信息包括所述第一键参数和对应的域信息;
5、在目标数据库中存在与所述第一信息匹配的第一预存键的情况下,对所述第一预存键执行所述第一命令对应的操作,在所述目标数据库中不存在与所述第一信息匹配的第一预存键的情况下,将所述第一信息储存至所述目标数据库并执行所述第一命令对应的操作;
6、其中,所述第一键参数和n个域信息均为哈希hash类型的数据,所述第一信息和所述第一预存键均为字符串string类型的数据。
7、可选地,所述域信息包括域参数和域值;
8、所述确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,包括:
9、基于第一域信息中的所述域参数和所述第一键参数拼接确定第一参数,所述第一参数包括所述第一域信息中的所述域参数和所述第一键参数;
10、基于所述第一域信息中的所述域值确定第一值,所述第一值等于所述第一域信息中的所述域值;
11、其中,所述第一域信息为所述n个域信息中任一个域信息,第一目标信息包括所述第一参数和所述第一值,所述第一目标信息为所述n个第一信息中与所述第一域信息对应的第一信息。
12、可选地,所述确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,包括:
13、确定标识字符;
14、基于所述标识字符确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,所述第一信息包括所述标识字符、所述第一键参数和对应的域信息。
15、可选地,所述在目标数据库中存在与所述第一信息匹配的第一预存键的情况下,对所述第一预存键执行所述第一命令对应的操作,在所述目标数据库中不存在与所述第一信息匹配的第一预存键的情况下,将所述第一信息储存至所述目标数据库并执行所述第一命令对应的操作之后,所述方法还包括:
16、接收到第二命令的情况下,获取所述第二命令携带的第二键参数;
17、基于所述第二键参数和所述标识字符确定第二信息;
18、获取所述目标数据库内与所述第二信息匹配的第二预存键;
19、对所述第二预存键执行所述第二命令对应的操作。
20、可选地,所述第二键参数为hash类型的数据,所述第二预存键为string类型的数据。
21、可选地,所述第一命令用于指示对hash类型的数据执行对应的第一目标操作;
22、所述执行所述第一命令对应的操作,包括:
23、确定第三命令,所述第三命令用于指示对string类型的数据执行对应的所述第一目标操作;
24、执行所述第三命令对应的所述第一目标操作。
25、可选地,所述第一命令用于对所述第一预存键或所述第一信息执行设置过期时间的操作,以使所述第一预存键或所述第一信息在所述过期时间对应的时刻被自动删除。
26、第二方面,本发明实施例还提供一种数据处理装置,包括:
27、第一获取模块,用于接收到第一命令的情况下,获取所述第一命令携带的第一键参数和n个域信息,n为正整数;
28、第一确定模块,用于确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,所述第一信息包括所述第一键参数和对应的域信息;
29、处理模块,用于在目标数据库中存在与所述第一信息匹配的第一预存键的情况下,对所述第一预存键执行所述第一命令对应的操作,在所述目标数据库中不存在与所述第一信息匹配的第一预存键的情况下,将所述第一信息储存至所述目标数据库并执行所述第一命令对应的操作;
30、其中,所述第一键参数和n个域信息均为hash类型的数据,所述第一信息和所述第一预存键均为string类型的数据。
31、第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据处理方法中的步骤。
32、第四方面,本发明实施例还提供一种可读存储介质,所述可读存储介质上存储程序,所述程序被处理器执行时实现如上所述的数据处理方法中的步骤。
33、在本发明实施例中,接收到第一命令的情况下,获取所述第一命令携带的第一键参数和n个域信息,确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,根据目标数据库中是否存在与所述第一信息匹配的第一预存键,对第一信息或第一预存键执行所述第一命令对应的操作。在本实施例中,通过将确定所述n个域信息分别与所述第一键参数关联后的n个第一信息,可以将hash类型的数据转为string类型的数据,从而可以调用redis提供的针对string类型的数据的命令对数据进行处理。通过对数据类型的转换,扩大了redis对hash类型的数据进行处理时可调用的命令的范围,提高了redis对数据进行操作的灵活度。