库存管理方法、装置、系统及存储介质
技术领域
本发明涉及仓库管理技术领域,尤其涉及一种库存管理方法、装置、系统及存储介质。
背景技术
随着社会经济的迅速发展和科学技术的全面进步,企业对库存管理系统的要求也越来越高,如何尽可能的减少库存管理的重复性和低效性就是当前最为重要的问题;同时,现有的库存管理系统安全性能不高,同时交易数据信息不能有效的进行长时间的保存,且不能防止篡改,导致交易数据存在虚假的可能;在对交易数据信息进行提取分析时,操作复杂,导致其工作效率很低。
区块链技术(Blockchain Technology,BT)是一种完全去中心化的P2P(Point ToPoint,点对点)交易技术,是一个完全去中心化的分布式账本。一旦交易被最终确认,是无法被更改的。区块链通过数字加密认证技术保障所有交易的安全。
目前,库存管理多采用Redis或数据库的方式进行实现,库存数量通过异步的同步机制来保持一致。Redis是一个开源的遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,提供多数据结构的高性能存储及访问。
但是,这种方式无法还原库存的真是变化过程,过程数据也存在被篡改的风险。
发明内容
本发明提供一种库存管理方法、装置、系统及存储介质,通过Redis及区块链技术相结合,既保障了库存管理的高效能,又可以通过不可变更可追溯的分布式账本技术保障库存管理的准确性和安全性。
第一方面,本发明实施例提供一种库存管理方法,包括:
获取库存变更信息;
对所述库存变更信息进行校验;
记录校验成功的库存变更信息,得到变更记录;
将所述变更记录同步到区块链平台中。
可选地,所述获取库存变更信息,包括:
获取通过统一的库存管理接口提交的库存变更信息,所述库存变更信息包括:商家发布的发货信息、充值交易信息。
可选地,对所述库存变更信息进行校验,包括:
通过Redis对所述库存变更信息进行校验。
可选地,通过Redis对所述库存变更信息进行校验,包括:
判断所述库存变更信息是否符合预设的数据格式,若不符合预设的数据格式,则检验失败,将所述库存变更信息退回至统一的库存管理接口;若符合预设的数据格式,则校验成功。
可选地,记录校验成功的库存变更信息,得到变更记录,包括:
通过Redis记录校验成功的库存变更信息,得到交易日志,所述交易日志包括:变更的库存类型,以及所述变更的库存类型对应的库存数量;
将所述交易日志记录到预设的中间存储器中,得到变更记录。
可选地,将所述交易日志记录到预设的中间存储器中,得到变更记录,包括:
将所述交易日志记录到ActiveMQ,或者MySQL中;
通过ActiveMQ,或者MySQL进行交易日志的整合处理,得到对应的变更记录,其中,所述变更记录中包括:两条及以上的交易日志。
第二方面,本发明实施例提供一种库存管理装置,包括:
获取模块,用于获取库存变更信息;
校验模块,用于对所述库存变更信息进行校验;
记录模块,用于记录校验成功的库存变更信息,得到变更记录;
同步模块,用于将所述变更记录同步到区块链平台中。
可选地,所述获取模块,具体用于:
获取通过统一的库存管理接口提交的库存变更信息,所述库存变更信息包括:商家发布的发货信息、充值交易信息。
可选地,所述校验模块,具体用于:
通过Redis对所述库存变更信息进行校验。
可选地,通过Redis对所述库存变更信息进行校验,包括:
判断所述库存变更信息是否符合预设的数据格式,若不符合预设的数据格式,则检验失败,将所述库存变更信息退回至统一的库存管理接口;若符合预设的数据格式,则校验成功。
可选地,所述记录模块,具体用于:
通过Redis记录校验成功的库存变更信息,得到交易日志,所述交易日志包括:变更的库存类型,以及所述变更的库存类型对应的库存数量;
将所述交易日志记录到预设的中间存储器中,得到变更记录。
可选地,将所述交易日志记录到预设的中间存储器中,得到变更记录,包括:
将所述交易日志记录到ActiveMQ,或者MySQL中;
通过ActiveMQ,或者MySQL进行交易日志的整合处理,得到对应的变更记录,其中,所述变更记录中包括:两条及以上的交易日志。
第三方面,本发明实施例提供一种库存管理系统,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的库存管理方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的库存管理方法。
第五方面,本发明实施例提供一种程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,服务器的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得服务器执行第一方面中任一所述的库存管理方法。
本发明提供一种库存管理方法、装置、系统及存储介质,通过获取库存变更信息;对所述库存变更信息进行校验;记录校验成功的库存变更信息,得到变更记录;将所述变更记录同步到区块链平台中。本发明利用区块链技术,保障库存更新记录不可篡改,提高了库存管理加密安全性,提升了库存管理的可追溯性;利用Redis解决了库存频繁更新的问题,保证了库存管理的高效性、易维护性;中间层通过异步消息同步的模式,解决Redis和区块链性能不匹配的问题,最终实现了高效、安全、可靠、不可篡改的库存管理的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一应用场景的原理示意图;
图2为本发明实施例一提供的库存管理方法的流程图;
图3为本发明实施例二提供的库存管理装置的结构示意图;
图4为本发明实施例三提供的库存管理系统的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解技术方案,对本发明中出现的专业术语进行解释。
1)Redis:是指key-value存储系统,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
2)MySQL:是一个开放源码的小型关联是数据库管理系统。
3)ActiveMQ:是一种消息队列服务。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明一应用场景的原理示意图,如图1所示,在实际生产环境中,单库房对库存的变更非常频繁,高峰期达到每秒上千次的更新,未解决库存的高并发更新。本发明,在接到库存更新请求10后,库存管理装置20采用Redis作为频繁更新的存储服务,提升库存服务性能,缓解数据库的压力。为避免库存数据被非法修改,伪造库存数据,恶意修改Redis或数据库中的数据,库存管理装置20采用通过区块链的方式记录每一次的库存变化。Redis库存更新与区块链存储之间,库存管理装置20通过异步消息同步的模式,解决服务之间吞吐量及性能不匹配的问题,将多次更新操作合并为一条记录,写入区块链,最终实现了高效、安全、可靠、不可篡改的库存管理的目的。在具体的实现过程中,本发明通过获取库存变更信息;对库存变更信息进行校验;记录校验成功的库存变更信息,得到变更记录;将变更记录同步到区块链平台中。
应用上述方法,本发明利用区块链技术,保障库存更新记录不可篡改,提高了库存管理加密安全性,提升了库存管理的可追溯性;利用Redis解决了库存频繁更新的问题,保证了库存管理的高效性、易维护性;中间层通过异步消息同步的模式,解决Redis和区块链性能不匹配的问题,最终实现了高效、安全、可靠、不可篡改的库存管理的目的。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例一提供的库存管理方法的流程图,如图2所示,本实施例中的方法可以包括:
S101、获取库存变更信息。
本实施例中,获取通过统一的库存管理接口提交的库存变更信息,库存变更信息包括:商家发布的发货信息、充值交易信息。
具体地,商家或供货商在进行发货处理或有充值交易时,需要对货物的库存进行管理时,调用统一的库存管理接口,提交发货信息、充值交易信息。例如,提交发货的货物的名称、数量、编码等信息,以供进行库存管理。
S102、对库存变更信息进行校验。
本实施例中,通过Redis对库存变更信息进行校验。Redis是一个开源的、业界通用的大数据存储处理生态圈,遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,提供多数据结构的高性能存储及访问。Redis自身的性能能够保障库存管理的高效性及稳定性。基于Redis进行库存校验,也降低对Mysql数据的依赖,提升了库存管理的整体性能。
在一种可选的实施方式中,判断库存变更信息是否符合预设的数据格式,若不符合预设的数据格式,则检验失败,将库存变更信息退回至统一的库存管理接口;若符合预设的数据格式,则校验成功。
具体地,Redis通过商家编码及库存类型为Key,当前库存量为Value,存储商家的最新库存数据,根据扣减及充值逻辑更新最新库存值,保障系统的高可用性及高性能。商家发货涉及库存变更时,通过同步更新Redis的方式进行校验及库存扣减操作,保障库存管理的高效性。
S103、记录校验成功的库存变更信息,得到变更记录。
本实施例中,通过Redis记录校验成功的库存变更信息,得到交易日志,交易日志包括:变更的库存类型,以及变更的库存类型对应的库存数量;将交易日志记录到预设的中间存储器中,得到变更记录。
在一种可选的实施方式中,将交易日志记录到预设的中间存储器中,得到变更记录,包括:将交易日志记录到ActiveMQ,或者MySQL中;通过ActiveMQ,或者MySQL进行交易日志的整合处理,得到对应的变更记录,其中,变更记录中包括:两条及以上的交易日志。
具体地,ActiveMQ是一种消息队列服务。保障Redis更新库存后库存变更后,通过一种一致性的存储方式将记录到中间消息队列中,避免消息丢失。
S104、将变更记录同步到区块链平台中。
本实施例中,库存更新与区块链存储之间通过异步消息同步的模式,解决服务之间吞吐量及性能不匹配的问题,将多次更新操作合并为一条记录,写入区块链。将提供唯一的不可变更的库存变更记录,保障数据的最终一致性,并保障系统的可溯源性,解决库存更新记录不可篡改和加密安全性;
本实施例,通过获取库存变更信息;对库存变更信息进行校验;记录校验成功的库存变更信息,得到变更记录;将变更记录同步到区块链平台中。本发明利用区块链技术,保障库存更新记录不可篡改,提高了库存管理加密安全性,提升了库存管理的可追溯性;利用Redis解决了库存频繁更新的问题,保证了库存管理的高效性、易维护性;中间层通过异步消息同步的模式,解决Redis和区块链性能不匹配的问题,最终实现了高效、安全、可靠、不可篡改的库存管理的目的。
图3为本发明实施例二提供的库存管理装置的结构示意图,如图3所示,本实施例的库存管理装置可以包括:
获取模块31,用于获取库存变更信息;
校验模块32,用于对库存变更信息进行校验;
记录模块33,用于记录校验成功的库存变更信息,得到变更记录;
同步模块34,用于将变更记录同步到区块链平台中。
可选地,获取模块31,具体用于:
获取通过统一的库存管理接口提交的库存变更信息,库存变更信息包括:商家发布的发货信息、充值交易信息。
可选地,校验模块32,具体用于:
通过Redis对库存变更信息进行校验。
可选地,通过Redis对库存变更信息进行校验,包括:
判断库存变更信息是否符合预设的数据格式,若不符合预设的数据格式,则检验失败,将库存变更信息退回至统一的库存管理接口;若符合预设的数据格式,则校验成功。
可选地,记录模块33,具体用于:
通过Redis记录校验成功的库存变更信息,得到交易日志,交易日志包括:变更的库存类型,以及变更的库存类型对应的库存数量;
将交易日志记录到预设的中间存储器中,得到变更记录。
可选地,将交易日志记录到预设的中间存储器中,得到变更记录,包括:
将交易日志记录到ActiveMQ,或者MySQL中;
通过ActiveMQ,或者MySQL进行交易日志的整合处理,得到对应的变更记录,其中,变更记录中包括:两条及以上的交易日志。
本实施例的库存管理装置,可以执行图2所示方法中的技术方案,其具体实现过程和技术原理参见图2所示方法中的相关描述,此处不再赘述。
本实施例,通过获取库存变更信息;对库存变更信息进行校验;记录校验成功的库存变更信息,得到变更记录;将变更记录同步到区块链平台中。本发明利用区块链技术,保障库存更新记录不可篡改,提高了库存管理加密安全性,提升了库存管理的可追溯性;利用Redis解决了库存频繁更新的问题,保证了库存管理的高效性、易维护性;中间层通过异步消息同步的模式,解决Redis和区块链性能不匹配的问题,最终实现了高效、安全、可靠、不可篡改的库存管理的目的。
图4为本发明实施例三提供的库存管理系统的结构示意图,如图4所示,本实施例的库存管理系统40可以包括:处理器41和存储器42。
存储器42,用于存储程序;存储器42,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器42用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器42中。并且上述的计算机程序、计算机指令、数据等可以被处理器41调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器42中。并且上述的计算机程序、计算机指令、数据等可以被处理器41调用。
处理器41,用于执行存储器42存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。
具体可以参见前面方法实施例中的相关描述。
处理器41和存储器42可以是独立结构,也可以是集成在一起的集成结构。当处理器41和存储器42是独立结构时,存储器42、处理器41可以通过总线43耦合连接。
本实施例的服务器可以执行图2所示方法中的技术方案,其具体实现过程和技术原理参见图2所示方法中的相关描述,此处不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本申请还提供一种程序产品,程序产品包括计算机程序,计算机程序存储在可读存储介质中,服务器的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得服务器实施上述本发明实施例任一的库存管理方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。