本申请的所公开实施例涉及存储,且更具体而言,涉及一种用于键值存储设备的键值管理方法、相关方法和设备。
背景技术:
1、很多网络服务只需要以主键key的方式来存储非结构化数据,例如网络排行榜、购物车、session管理、商品目录信息、用户喜好等数据,生产系统发展出键值(key value,kv)存储系统,即以主键key来访问数据的存储系统。然而,当前kv存储系统存在严重的写入放大、存储更新复杂等问题。
技术实现思路
1、根据本申请的实施例,本申请提出一种用于键值存储设备的键值管理方法、相关方法和设备,以解决上述问题,并加快了键值信息的读取速度。
2、本申请的第一方面公开了用于键值存储设备的键值管理方法,所述键值存储设备包括nand闪存和高速缓存cache,所述方法包括:获取键信息,并利用所述键信息进行哈希(hash)算法处理,以得到所述键信息对应的哈希索引;将所述哈希索引映射成第一块地址或第二块地址,以得到所述键信息对应的哈希值,所述哈希值用于构成哈希表,其中所述第一块地址用于表示所述键信息及其值被存储到所述nand闪存中,所述第二块地址用于表示所述键信息被存储到所述高速缓存cache中。
3、在一些实施例中,所述哈希表中包括第一哈希值,其中所述第一哈希值对应至少预设数量个键信息,则所述至少预设数量个键信息通过预设顺序被链接,以得到相应的键链信息,所述键链信息用于表征所述至少预设数量个键信息按照所述预设顺序的链接关系;所述方法进一步包括:响应于所述预设数量大于预设值时,将所述键链信息导入到所述高速缓存cache中。
4、在一些实施例中,在所述nand闪存中按照预设顺序将所述至少预设数量个键信息链接,以得到相应的所述键链信息,并将所述键链信息保存于所述nand闪存中,其中,在所述nand闪存中,所述至少预设数量个键信息中第一键信息所链接的第二键信息的第一块地址被写入到所述第一键信息的值之前。
5、在一些实施例中,所述方法还包括:利用最近最少使用算法更新所述cache中的键信息;和/或删除所述cache中低于预设长度的键链信息相关的键信息。
6、本申请第二方面公开了一种用于键值存储设备的键值指令处理方法,所述键值存储设备包括nand闪存和高速缓存cache,所述方法包括:接收键值指令;从所述键值指令中提取目标键信息;利用所述键信息进行哈希(hash)算法处理,以得到所述目标键信息对应的目标哈希值;从哈希表中获取所述目标哈希值对应的地址信息,并利用所述地址信息,在所述nand闪存或所述高速缓存cache中执行相关操作;其中,所述哈希表是通过如第一方面中所述的用于键值存储设备的键值管理方法得到的。
7、在一些实施例中,所述键值指令包括检索指令;所述目标键信息位于预设键链信息中;利用所述地址信息,在所述nand闪存或所述高速缓存cache中执行相关操作,包括:在所述nand闪存或所述高速缓存cache中查询所述目标键信息所在的所述预设键链信息,以获取所述目标键信息对应的值的第一块地址;依据所述第一块地址,从所述nand闪存中读取所述目标键信息对应的值,以实现检索所述目标键信息对应的值。
8、在一些实施例中,所述键值指令包括存储指令;所述利用所述地址信息,在所述nand闪存或所述高速缓存cache中执行相关操作,包括:利用所述地址信息,将所述目标键信息对应的值写入所述nand闪存中;和/或利用所述地址信息,将所述目标键信息写入所述高速缓存cache中,以更新所述目标键信息所在的预设键链信息。
9、在一些实施例中,所述键值指令包括删除指令;所述利用所述地址信息,在所述nand闪存或所述高速缓存cache中执行相关操作,包括:所述利用所述地址信息,将待删除的键信息的标签分别写入所述nand闪存和所述高速缓存cache中;基于所述待删除的键信息标签,更新所述待删除的键信息相关的预设键链信息。
10、在一些实施例中,所述键值指令包括查找指令;所述利用所述地址信息,在所述nand闪存或所述高速缓存cache中执行相关操作,包括:利用所述地址信息,查询预设键链信息,获取所述预设键链信息对应的键信息,以生成键信息列表;查询所述预设键链信息,以在所述目标键信息存在于所述预设键链信息中时返回所述目标键信息存在于所述预设键链信息中的查询状态信息。
11、本申请第三方面公开了一种键值存储设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现第一方面中所述的用于键值存储设备的键值管理方法,或以实现第二方面中所述的用于键值存储设备的键值指令处理方法。
12、本申请第四方面公开了一种非易失性计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现第一方面中所述的用于键值存储设备的键值管理方法,或以实现第二方面中所述的用于键值存储设备的键值指令处理方法。
13、本申请的有益效果有:获取键信息,并利用键信息进行哈希(hash)算法处理,以得到键信息对应的哈希索引,将哈希索引映射成第一块地址或第二块地址,以得到键信息对应的哈希值,哈希值用于构成哈希表,其中第一块地址用于表示键信息及其值被存储到nand闪存中,第二块地址用于表示键信息被存储到高速缓存cache中,即通过利用哈希(hash)算法处理处理键信息以及高速缓存cache存储部分键信息,解决了kv存储系统写入放大、存储更新复杂等问题,并加快了kv的读取速度。
1.一种用于键值存储设备的键值管理方法,其特征在于,所述键值存储设备包括nand闪存和高速缓存cache,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述哈希表中包括第一哈希值,其中所述第一哈希值对应至少预设数量个键信息,则所述至少预设数量个键信息通过预设顺序被链接,以得到相应的键链信息,所述键链信息用于表征所述至少预设数量个键信息按照所述预设顺序的链接关系;
3.根据权利要求2所述的方法,其特征在于,在所述nand闪存中按照预设顺序将所述至少预设数量个键信息链接,以得到相应的所述键链信息,并将所述键链信息保存于所述nand闪存中,其中,在所述nand闪存中,所述至少预设数量个键信息中第一键信息所链接的第二键信息的第一块地址被写入到所述第一键信息的值之前。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.一种用于键值存储设备的键值指令处理方法,其特征在于,所述键值存储设备包括nand闪存和高速缓存cache,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述键值指令包括检索指令;
7.根据权利要求5所述的方法,其特征在于,所述键值指令包括存储指令;
8.根据权利要求5所述的方法,其特征在于,所述键值指令包括删除指令;
9.根据权利要求5所述的方法,其特征在于,所述键值指令包括查找指令;
10.一种键值存储设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至4任一项所述的用于键值存储设备的键值管理方法,或者以实现权利要求5至9任一项所述的用于键值存储设备的键值指令处理方法。
11.一种非易失性计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至4任一项所述的用于键值存储设备的键值管理方法,或者实现权利要求5至9任一项所述的用于键值存储设备的键值指令处理方法。
