CN111858640B - 一种数据管理方法、数据管理装置、电子设备及存储介质 - Google Patents
一种数据管理方法、数据管理装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111858640B CN111858640B CN202010754374.8A CN202010754374A CN111858640B CN 111858640 B CN111858640 B CN 111858640B CN 202010754374 A CN202010754374 A CN 202010754374A CN 111858640 B CN111858640 B CN 111858640B
- Authority
- CN
- China
- Prior art keywords
- data
- editing
- edited
- queue
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013523 data management Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 17
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012552 review Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于大数据技术领域,提供了一种数据管理方法、装置、电子设备及计算机可读存储介质。其中,该方法包括:当接收到指定账号所发送的编辑指令时,基于所述编辑指令,对数据库进行编辑;在对所述数据库编辑成功后,确定与缓存相关的待编辑数据;获取所述待编辑数据的标志码,并根据所述标志码,检测预设的队列中是否已存在所述待编辑数据,其中,所述标志码用于唯一的表示所述待编辑数据及所述编辑指令所指示的编辑操作;若所述队列中不存在所述待编辑数据,则将所述待编辑数据加入所述队列,以通过所述队列对所述缓存进行编辑。本申请方案可保证数据库与缓存的一致性,避免在高并发请求时出现脏读问题。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种数据管理方法、数据管理装置、电子设备及计算机可读存储介质。
背景技术
随着互联网的发展,互联网应用被越来越多的人使用,传统的关系型数据库面对超大规模和高并发请求已经显得力不从心,因此越来越多的非关系型数据库被用作缓存,来改善系统吞吐量,但随之也带来了数据库和缓存的数据不一致的问题。目前常见的数据库与缓存的同步方案为旁路缓存(Cache Aside Pattern),然而,该同步方案仍存在更新缓存失败的可能性,这将导致脏读问题的出现。
发明内容
有鉴于此,本申请实施例提供了一种数据管理方法、数据管理装置、电子设备及计算机可读存储介质,可保证数据库与缓存的一致性,避免在高并发请求时出现脏读问题。
本申请实施例的第一方面提供了一种数据管理方法,包括:
当接收到指定账号所发送的编辑指令时,基于上述编辑指令,对数据库进行编辑;
在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
获取上述待编辑数据的标志码,并根据上述标志码,检测预设的队列中是否已存在上述待编辑数据,其中,上述标志码用于唯一的表示上述待编辑数据及上述编辑指令所指示的编辑操作;
若上述队列中不存在上述待编辑数据,则将上述待编辑数据加入上述队列,以通过上述队列对上述缓存进行编辑。
本申请实施例的第二方面提供了一种数据管理装置,包括:
数据库编辑单元,用于当接收到指定账号所发送的编辑指令时,基于上述编辑指令,对数据库进行编辑;
待编辑数据确定单元,用于在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
标志码获取单元,用于获取上述待编辑数据的标志码,其中,上述标志码用于唯一的表示上述待编辑数据及上述编辑指令所指示的编辑操作;
数据检测单元,用于根据上述标志码,检测预设的队列中是否已存在上述待编辑数据;
缓存编辑单元,用于若上述队列中不存在上述待编辑数据,则将上述待编辑数据加入上述队列,以通过上述队列对上述缓存进行编辑。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在上述存储器中并可在电子设备上运行的计算机程序,上述处理器执行上述计算机程序时实现第一方案提供的数据管理方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现第一方案提供的数据管理方法的各步骤。
实施本申请实施例提供的一种数据管理方法、数据管理装置、电子设备及计算机可读存储介质具有以下有益效果:一方面,在数据库编辑成功后,也即实现对数据库的更新后,通过队列对缓存进行编辑,可借助队列的消费重试机制,使得原本不可靠的缓存与数据库同步操作变得可靠,且提升了编辑操作的有序性;另一方面,在将待编辑数据加入队列之前,会先获取用于唯一的表示待编辑数据及编辑指令所指示的编辑操作的标志码,基于该标志码进行初步的筛选,避免同一编辑操作被执行多次,以此提升数据缓存的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据管理方法的实现流程图;
图2是本申请实施例提供的一种数据管理方法的另一实现流程图;
图3是本申请实施例提供的一种数据管理方法的又一实现流程图;
图4是本申请实施例提供的一种数据管理装置的结构框图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例所涉及的数据管理方法,可以应用于电子设备、台式电脑、手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本及个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
请参阅图1,图1示出了本申请实施例提供的数据管理方法的实现流程图。如图1所示,本实施例提供的数据管理方法可以包括:
步骤101,当接收到指定账号所发送的编辑指令时,基于上述编辑指令,对数据库进行编辑;
在本申请实施例中,操作者可以登录自己的账号,对数据库及缓存中所存储的数据进行编辑。以任一账号为指定账号为例,对本申请实施例进行描述:通常来说,操作者通过指定账号查阅的是缓存中的数据,因而,上述编辑指令也是指定账号基于缓存中的数据所发送的;当电子设备接收到指定账号所发送的编辑指令时,由于缓存需要与数据库保持同步,因而,电子设备将首先基于该编辑指令对数据库中的数据进行编辑,以实现数据库的更新。具体地,电子设备可以通过预设的服务接口来调用预设的服务(service),该服务可执行本申请实施例的各个步骤。可将服务视为一类应用程序,本申请实施例所提出的服务用于实现数据的更新与同步。
举例来说,编辑指令是对缓存中P1位置处的A数据进行修改,则该服务会在数据库中找到对应的数据,并先对该数据库中的对应的数据进行修改;如果修改失败,则电子设备可向指定账号输出数据库编辑失败提醒消息,以提醒操作者当前对数据库的编辑失败。
在一些实施例中,电子设备的服务可以预先设定一失败次数阈值;当对数据库的编辑失败时,该服务可以反复对数据库进行编辑,并记录失败次数;若反复对数据库进行编辑一直失败,导致失败次数达到该失败次数阈值,则向指定账号输出数据库编辑失败提醒消息;如果在失败次数达到该失败次数阈值前就编辑成功,则停止反复对数据库进行编辑,并执行后续步骤。
在一些实施例中,上述编辑指令所能够指示的编辑操作包括但不限于如下类型:新增、删除或修改。
需要注意的是,由于在接收到编辑指令后,会先对数据库进行编辑,此时缓存中的数据还没有更新;因而,即便对数据库的编辑失败,也不会影响数据库及缓存的数据同步。
步骤102,在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
在本申请实施例中,在数据库编辑成功后,电子设备的服务可基于该编辑指令继续确定与缓存相关的待编辑数据;也即,确定在缓存中需要对哪些数据进行编辑,包括该数据在缓存中的位置,编辑前的值及编辑后的值等。其中,上述缓存可以是redis缓存,此处不作限定。
步骤103,获取上述待编辑数据的标志码,并根据上述标志码,检测预设的队列中是否已存在上述待编辑数据;
在本申请实施例中,电子设备预先创建有一队列,该队列中存储有还没有执行对缓存的编辑操作的待编辑数据,也即过往的待编辑数据。为便于说明,将队列中所存储的待编辑数据记为历史待编辑数据。服务会根据各个历史待编辑数据进入队列的顺序来确定基于各个历史待编辑数据执行对缓存的编辑操作的顺序,具体表现为先进先出。
在获得本次的待编辑数据后,考虑到可能有不止一个操作者在通过服务对数据进行编辑操作(也即,可能有高并发请求的情况出现),因而,为了避免服务对缓存进行多次读写操作,本申请实施例会去获取该待编辑数据的标志码,该标志码用于唯一的表示该待编辑数据及编辑指令所指示的编辑操作。显然,队列中的各个历史待编辑数据也有着对应的标志码;因而,可根据上述标志码,检测队列中是否已存在上述待编辑数据,具体表现为:检测本次的待编辑数据的标志码是否与队列中的任一历史待编辑数据的标志码相同;若本次的待编辑数据的标志码与队列中的任一历史待编辑数据的标志码相同,则确定队列中已存在有本次的待编辑数据;若本次的待编辑数据的标志码与队列中的所有历史待编辑数据的标志码均不相同,则确定队列中不存在本次的待编辑数据。
步骤104,若上述队列中不存在上述待编辑数据,将上述待编辑数据加入上述队列,以通过上述队列对上述缓存进行编辑。
在本申请实施例中,只要队列中不存在本次的待编辑数据,则可认为本次的编辑指令为新的编辑指令,此时可将该待编辑数据加入至队列中。反之,当队列中已存在本次的待编辑数据时,为避免重复操作,可忽略掉本次的待编辑数据。通过这一过程,可避免重复执行同一编辑指令,导致对缓存的多次读写。
电子设备的服务可以通过定时任务定时扫描队列中是否存在有待编辑数据(也即历史待编辑数据)。当存在历史待编辑数据时,基于先进先出原则将一历史待编辑数据从队列中取出,并基于所取出的历史待编辑数据对缓存进行编辑;如果对缓存编辑失败(也即,更新缓存失败),则基于队列的消费重试机制,一直重试编辑,直到对缓存编辑成功(也即,更新缓存成功)。
由上可见,在本申请实施例中,一方面,通过队列对缓存进行编辑,可借助队列的消费重试机制,使得原本不可靠的缓存与数据库同步操作变得可靠,且提升了编辑操作的有序性;另一方面,在将待编辑数据加入队列之前,会先进行初步的筛选,避免同一编辑操作被执行多次,以此提升数据缓存的效率。
在前文所述实施例的基础上,可以根据循坏冗余校验(Cyclic RedundancyCheck,CRC)算法来生成标志码。请参阅图2,图2示出了本申请实施例提供的另一种数据管理方法的实现流程图。如图2所示,本实施例提供的数据管理方法可以包括:
步骤201,当接收到指定账号所发送的编辑指令时,基于上述编辑指令,对数据库进行编辑;
步骤202,在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
在本申请实施例中,步骤201及202分别与步骤101及102相同或相似,具体可参阅步骤101及102的相关描述,此处不再赘述。
步骤203,根据上述待编辑数据及上述编辑指令所指示的编辑操作,生成循环冗余校验码作为上述待编辑数据的标志码;
在本申请实施例中,电子设备的服务可以对本次的待编辑数据进行CRC校验,以生成CRC校验码。当然,也可以选择生成其它校验码,例如哈希校验码等,此处不作限定。需要说明的是,为了准确定位需要对哪一数据进行怎样的编辑,上述待编辑数据具体包括如下信息:数据位置及与编辑操作相关的数据;其中,与编辑操作相关的数据包括编辑后的数据和/或编辑前的数据。除此之外,编辑指令所指示的编辑操作可以通过编辑码进行表示;每一编辑码对应一编辑操作,且不同编辑码所对应的操作不同。也即,电子设备的服务可以将编辑码及待编辑数据以预设的顺序进行拼接,并生成拼接后的数据的CRC校验码,作为待编辑数据的标志码。例如,预设的顺序可以为编辑码-数据位置-编辑前的数据-编辑后的数据。针对编辑前的数据或编辑后的数据为空的情况,可直接跳过对该空的数据的拼接。
举例来说,对于修改操作,其对应的编辑码可以为1;编辑前的数据是A,编辑后的数据是A’;数据位置是缓存中的P1处(可以是缓存中的某表单某行某列);也即,修改操作为:将P1处的数据A修改为数据A’;则进行CRC校验时,可以对编辑码1、数据位置P1、编辑前的数据A及编辑后的数据A’进行拼接,得到1-P1-A-A’,并生成1-P1-A-A’所对应的CRC校验码。
对于删除操作,其对应的编辑码可以为2;被删除数据是B,则编辑前的数据是B;数据位置是缓存中的P2处;也即删除操作为:将P2处的数据B删除;则进行CRC校验时,可以对编辑码2、数据位置P2及编辑前的数据B进行拼接,得到2-P2-B,并生成2-P2-B所对应的CRC校验码。
对于新增操作,其对应的编辑码可以为3;被新增数据是C,则编辑后的数据是C;数据位置是缓存中的P3处;也即新增操作为:在P3处新增数据C;则进行CRC校验时,可以对编辑码3、数据位置P3及编辑后的数据C进行拼接,得到3-P3-C,并生成3-P3-C对应的CRC校验码。
步骤204,分别检测上述队列中的各个任务对象所包含的标志码是否与上述待编辑数据的标志码相同;
在本申请实施例中,队列中存储的并不单纯是还没有执行对缓存的编辑操作的待编辑数据(也即历史待编辑数据),而是任务对象;其中,每一任务对象由一历史待编辑数据及对应CRC校验码包装而得。基于此,在获得本次的待编辑数据的CRC校验码后,可依次将该CRC校验码与队列中的各个任务对象所包含的CRC校验码进行比对,以检测是否有重复,也即是否有相同的CRC校验码。
步骤205,若每个任务对象所包含的标志码均与上述待编辑数据的标志码不同,则确定上述队列中不存在上述待编辑数据;
在本申请实施例中,如果队列中已有一任务对象所包含的CRC校验码与本次的待编辑数据的CRC校验码相同,则可认为该任务对象所包含的待编辑数据与本次的待编辑数据相同。为了避免重复操作,此时可以丢弃(也即忽略)本次的待编辑数据及对应的CRC校验码。反之,若每个任务对象所包含的CRC校验码均与本次的待编辑数据的CRC校验码不同,则可确定队列中不存在本次的待编辑数据。
步骤206,若上述队列中不存在上述待编辑数据,则将上述待编辑数据及上述待编辑数据的标志码包装为新的任务对象;
在本申请实施例中,当确定队列中不存在本次的待编辑数据时,可以将本次的待编辑数据及对应的CRC校验码包装为一个新的任务对象。
步骤207,将上述新的任务对象存入上述队列的尾部。
在本申请实施例中,该新的任务对象可以被存入队列的尾部,依据先进先出的原则,等待电子设备的服务为其执行相应的对缓存的编辑操作。同时,该新的任务对象被存入队列的尾部,可以为后续比对是否存在相同的编辑操作提供比对基础。
由上可见,在本申请实施例中,通过CRC校验技术提高了对队列进行存在性检验的效率;且结合队列实现了对缓存的编辑,使得缓存与数据库的数据一致性得到了保证。
在前文所述实施例的基础上,可以根据操作者所拥有的权限对数据进行进一步管理。请参阅图3,图3示出了本申请实施例提供的又一种数据管理方法的实现流程图。如图3所示,本实施例提供的数据管理方法可以包括:
步骤301,当接收到上述指定账号所发送的查阅请求时,获取上述指定账号的权限;
在本申请实施例中,考虑到数据库及缓存所面向的操作者数量众多,每一操作者的账号所拥有的权限可能不同。例如,企业限定某些账号仅能访问本部门的数据;某些账号仅能查阅数据而无法编辑数据;某些主管部门下的账号可以访问全部数据等。因而,在接收到指定账号所发送的数据查阅请求时,电子设备可以先获取该指定账号的权限。示例性地,电子设备可以是根据该指定账号,在已配置的账号-权限表中查询而得。
在一些实施例中,为了增强权限使用的灵活性,该指定账号可以被授予临时权限,则数据查阅请求可以携带有该临时权限的权限范围及该临时权限的签发账号(也即由哪一账号授予该临时权限),并记录至权限变动日志中。
步骤302,基于上述权限确定上述指定账号在缓存中的可访问数据及可编辑数据;
在本申请实施例中,根据指定账号的权限,可确定该指定账号在缓存中的可访问数据及可编辑数据;可访问数据,也即操作者能够进行查阅的数据,具有查阅权限;可编辑数据,也即操作者不仅能够进行查阅,还可以进行编辑的数据,具有编辑权限。通常情况下,可编辑数据的范围必然小于或者等于可访问数据的范围。
步骤303,向上述指定账号推送上述可访问数据;
在本申请实施例中,如果指定账号所发送的查阅请求没有指明所要查阅的数据,则可以直接向该指定账号推送所有的可访问数据;反之,如果指定账号所发送的查阅请求已指明所要查阅的数据,也即,如果指定账号是针对特定的数据而发送的查阅请求,则电子设备可以先检测该所要查阅的数据是否属于可访问数据;若是,则向该指定账号推送其所要查阅的数据;若否,则向上述指定账号输出权限提示,用以提示操作上述指定账户的操作者不具备操作权限。
步骤304,当接收到上述指定账号基于上述可访问数据而输入的编辑指令时,检测上述编辑指令所指向的数据是否为可编辑数据;
在本申请实施例中,当电子设备再次接收到该指定账号基于上述可访问数据而输入的编辑指令时,考虑到可编辑数据的范围与可访问数据的范围往往存在差异,因而,电子设备可以再检测该编辑指令所指向的数据是否为可编辑数据;也即,检测该编辑指令所要编辑的数据是否为可编辑数据。
步骤305,若上述编辑指令所指向的数据为可编辑数据,则基于上述编辑指令,对数据库进行编辑。
在本申请实施例中,若上述编辑指令所指向的数据为可编辑数据,则可以基于上述编辑指令,查找出数据库中的相应数据,并基于此先对数据库进行编辑,之后再执行后续步骤。反之,若上述编辑指令所指向的数据不为可编辑数据,则向上述指定账号输出权限提示,用以提示操作上述指定账户的操作者不具备操作权限。
步骤306,在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
步骤307,获取上述待编辑数据的标志码,并根据上述标志码,检测预设的队列中是否已存在上述待编辑数据;
步骤308,若上述队列中不存在上述待编辑数据,则将上述待编辑数据加入上述队列,以通过上述队列对上述缓存进行编辑。
在本申请实施例中,步骤306、307及308分别与步骤102、103及104相同或相似,具体可参阅步骤102、103及104的相关描述,此处不再赘述。
在一些实施例中,电子设备可预先设定一个次数阈值N,N为正整数,例如,N可以为5。每当电子设备接收到该指定账号针对一无编辑权限的数据而发送的编辑指令时,即可基于该指定账号及该编辑指令更新编辑次数(具体为将编辑次数加1);若已N次接收到该指定账号针对同一无编辑权限的数据而发送的编辑指令,也即,若编辑次数达到N,则将该编辑指令及该编辑指令所指向的数据包装为临时权限请求,并将该临时权限请求发送给该指定账号的上级账号,由该上级账号的操作者确认是否向该指定账号签发临时权限;通常情况下,认为该上级账号的操作者为该指定账号的操作者的主管或领导;若上级账号已确认,也即,若上级账号基于该临时权限请求向电子设备反馈的是权限确认消息,则电子设备可以接收该指定账号的编辑指令,执行后续步骤(也即步骤305至308);反之,若上级账号拒绝,也即,若上级账号基于该临时权限请求向电子设备反馈的是权限拒绝消息,则电子设备可以向该指定账号输出权限提示,还可以在预设的时间段内(例如3小时内)将该指定账号拉入黑名单。并且,在电子设备接收到上级账号的反馈后,还可以将编辑次数重置清零。
在一些实施例中,上述数据管理方法还包括:
在上述缓存中,对已编辑数据进行标记;
若接收到针对上述已编辑数据的查阅请求,则推送标记后的上述已编辑数据。
其中,为了避免不同操作者之间因信息滞后等问题在短时间内频繁对同一数据进行编辑,可以在每次对数据库及缓存更新完成后,在缓存中标记本次的已编辑数据。电子设备可以先获取该已编辑数据的编辑时间、编辑发起账号及比对内容,其中,上述比对内容包括编辑前的数据及编辑后的数据(也即已编辑数据自身),然后根据上述编辑时间、上述编辑发起账号及上述比对内容,对上述已编辑数据进行标记,比如高亮标记;当接收到任一账号针对已编辑数据的查阅请求时,向该账号推送标记后的上述已编辑数据,也即向该账号推送该已编辑数据的编辑时间、编辑发起账号及比对内容。其中,针对已编辑数据的查阅请求,有两种应用场景:一种是该查阅请求没有指明所要查阅的数据;另一种是该查阅请求已指明所要查阅的数据,且该所要查阅的数据包括该已编辑数据。当然,在有权限管理的情况下,还需要该账号拥有对该已编辑数据的查阅权限,才可向该账号推送标记后的已编辑数据。需要注意的是,新增操作所对应的编辑前的数据为空,删除操作所对应的编辑后的数据为空。这样一来,操作者可以看到之前各个其它操作者对数据的编辑记录,以此衡量本次是否仍需要对数据进行编辑,可减少出现因不同操作者之间信息的不同步而导致数据被频繁编辑的问题。
由上可见,在本申请实施例中,结合权限对数据库及缓存中的数据进行了更有序的管理,可在保障对数据库及缓存的数据一致性的同时,保障数据库及缓存的数据安全。并且,上级账号在必要时可以向下级账号签发临时权限,提升了数据管理的灵活性。
在一些实施例中,电子设备在编辑缓存成功后,可以将缓存及数据库的编辑操作记录至数据更新日志中,并通知后台人员在指定时刻基于该数据更新日志对缓存及数据库进行检验,以进一步确保数据的同步。
在一些实施例中,电子设备可将该数据库上链存储于区块链(Blockchain)中。
其中,为了保证数据的安全性和对操作者的公正透明性,可以将数据库通过区块链进行存证。后台人员随后即可通过各自的设备从区块链中查阅数据库,以便查证该数据库是否被篡改。本实施例所指区块链是采用分布式数据存储、点对点传输、共识机制及加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
请参阅图4,图4是本申请实施例提供的一种数据管理装置的结构框图。本实施例中该数据管理装置包括的各单元用于执行上述数据管理方法实施例中的各步骤,具体请参阅上述数据管理方法所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图4,数据管理装置4包括:
数据库编辑单元401,用于当接收到指定账号所发送的编辑指令时,基于上述编辑指令,对数据库进行编辑;
待编辑数据确定单元402,用于在对上述数据库编辑成功后,确定与缓存相关的待编辑数据;
标志码获取单元403,用于获取上述待编辑数据的标志码,其中,上述标志码用于唯一的表示上述待编辑数据及上述编辑指令所指示的编辑操作;
数据检测单元404,用于根据上述标志码,检测预设的队列中是否已存在上述待编辑数据;
缓存编辑单元405,用于若上述队列中不存在上述待编辑数据,则将上述待编辑数据加入上述队列,以通过上述队列对上述缓存进行编辑。
作为本申请一实施例,上述标志码获取单元403,具体用于根据上述待编辑数据及上述编辑指令所指示的编辑操作,生成循环冗余校验码作为上述待编辑数据的标志码;
相应地,上述数据检测单元404,包括:
第一检测子单元,用于分别检测上述队列中的各个任务对象所包含的标志码是否与上述待编辑数据的标志码相同;
确定子单元,用于若每个任务对象所包含的标志码均与上述待编辑数据的标志码不同,则确定上述队列中不存在上述待编辑数据;
相应地,上述缓存编辑单元405,包括:
包装子单元,用于若上述队列中不存在上述待编辑数据,则将上述待编辑数据及上述待编辑数据的标志码包装为新的任务对象;
存储子单元,用于将上述新的任务对象存入上述队列的尾部。
作为本申请一实施例,上述数据管理装置4还包括:
权限获取单元,用于当接收到上述指定账号所发送的查阅请求时,获取上述指定账号的权限;
数据确定单元,用于基于上述权限确定上述指定账号在缓存中的可访问数据及可编辑数据;
数据推送单元,用于向上述指定账号推送上述可访问数据;
相应地,上述数据库编辑单元401,包括:
第二检测子单元,用于当接收到上述指定账号基于上述可访问数据而输入的编辑指令时,检测上述编辑指令所指向的数据是否为可编辑数据;
数据库编辑子单元,用于若上述编辑指令所指向的数据为可编辑数据,则基于上述编辑指令,对数据库中的数据进行编辑。
作为本申请一实施例,上述数据库编辑单元401,还包括:
请求包装子单元,用于若上述编辑指令所指向的数据不为可编辑数据,则将上述指定账号的账号信息及上述编辑指令包装为临时权限请求;
请求发送子单元,用于向上述指定账号的上级账号发送上述临时权限请求;
提示输出子单元,用于若接收到上述上级账号基于上述临时权限请求所反馈的权限拒绝消息,则向上述指定账号输出权限提示。
作为本申请一实施例,上述临时权限请求包装子单元,还包括:
编辑次数更新子单元,用于若上述编辑指令所指向的数据不为可编辑数据,则根据上述指定账号及上述编辑指令更新编辑次数;
临时权限请求包装子单元,用于若上述编辑次数达到预设的次数阈值,则将上述指定账号的账号信息及上述编辑指令包装为临时权限请求。
作为本申请一实施例,上述数据管理装置4还包括:
标记单元,用于在上述缓存中,对已编辑数据进行标记;
推送单元,用于若接收到任一账号针对上述已编辑数据的查阅请求,则向上述账号推送标记后的上述已编辑数据。
作为本申请一实施例,上述标记单元,包括:
信息获取子单元,用于获取上述已编辑数据的编辑时间、编辑发起账号及比对内容,其中,上述比对内容包括编辑前的数据及编辑后的数据;
数据标记子单元,用于根据上述编辑时间、上述编辑发起账号及上述比对内容,对上述已编辑数据进行标记。
作为本申请一实施例,上述数据库存储于区块链中。
由上可见,本申请实施例中,一方面,数据管理装置通过队列对缓存进行编辑,可借助队列的消费重试机制,使得原本不可靠的缓存与数据库同步操作变得可靠,且提升了编辑操作的有序性;另一方面,数据管理装置在将待编辑数据加入队列之前,会先进行初步的筛选,避免同一编辑操作被执行多次,以此提升数据缓存的效率。进一步地,数据管理装置还通过CRC校验技术提高了对队列进行存在性检验的效率;并且还结合权限对数据库及缓存中的数据进行了更有序的管理,可在保障对数据库及缓存的数据一致性的同时,保障数据库及缓存的数据安全。
需要说明的是,上述单元之间的信息交互及执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图5是本申请另一实施例提供的一种电子设备的结构示意图。如图5所示,该实施例的电子设备5包括:处理器51、存储器52以及存储在上述存储器52中并可在上述处理器51上运行的计算机程序53,例如数据管理方法的程序。处理器51执行上述计算机程序53时实现上述各个数据管理方法各实施例中的步骤,例如图1所示的步骤101至104。或者,上述处理器51执行上述计算机程序53时实现上述图4对应的实施例中各单元的功能,例如,图4所示的单元401至405的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
示例性的,上述计算机程序53可以被分割成一个或多个单元,上述一个或者多个单元被存储在上述存储器52中,并由上述处理器51执行,以完成本申请。上述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序53在上述电子设备50中的执行过程。例如,上述计算机程序53可以被分割成数据库编辑单元、待编辑数据确定单元、标志码获取单元、数据检测单元以及缓存编辑单元,各单元具体功能如上所述。
上述电子设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器52可以是上述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。上述存储器52也可以是上述电子设备5的外部存储设备,例如上述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器52还可以既包括上述电子设备5的内部存储单元也包括外部存储设备。上述存储器52用于存储上述计算机程序以及上述转台设备所需的其他程序和数据。上述存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
以上可以看出,本申请实施例中,一方面,电子设备通过队列对缓存进行编辑,可借助队列的消费重试机制,使得原本不可靠的缓存与数据库同步操作变得可靠,且提升了编辑操作的有序性;另一方面,电子设备在将待编辑数据加入队列之前,会先进行初步的筛选,避免同一编辑操作被执行多次,以此提升数据缓存的效率。进一步地,电子设备还通过CRC校验技术提高了对队列进行存在性检验的效率;并且还结合权限对数据库及缓存中的数据进行了更有序的管理,可在保障对数据库及缓存的数据一致性的同时,保障数据库及缓存的数据安全。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个数据管理方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个数据管理方法实施例中的步骤。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据管理方法,其特征在于,包括:
当接收到指定账号所发送的编辑指令时,基于所述编辑指令,对数据库进行编辑;
在对所述数据库编辑成功后,确定与缓存相关的待编辑数据,所述待编辑数据包括:数据位置及与编辑操作相关的数据;其中,与编辑操作相关的数据包括编辑后的数据和编辑前的数据,所述数据位置是指数据在缓存中的位置;
获取所述待编辑数据的标志码,并根据所述标志码,检测预设的队列中是否已存在所述待编辑数据,其中,所述标志码用于唯一的表示所述待编辑数据及所述编辑指令所指示的编辑操作,编辑指令所指示的编辑操作通过编辑码进行表示;每一编辑码对应一编辑操作,且不同编辑码所对应的操作不同;
若所述队列中不存在所述待编辑数据,则将所述待编辑数据加入所述队列,以通过所述队列对所述缓存进行编辑;
所述方法还包括:根据所述待编辑数据及所述编辑指令所指示的编辑操作,生成循环冗余校验码作为所述待编辑数据的标志码,具体包括:将编辑码及待编辑数据以预设的顺序进行拼接,并生成拼接后的数据的CRC校验码,作为待编辑数据的标志码,预设的顺序为编辑码-数据位置-编辑前的数据-编辑后的数据。
2.如权利要求1所述的数据管理方法,其特征在于,所述获取所述待编辑数据的标志码,并根据所述标志码,检测预设的队列中是否已存在所述待编辑数据,包括:
根据所述待编辑数据及所述编辑指令所指示的编辑操作,生成循环冗余校验码作为所述待编辑数据的标志码;
分别检测所述队列中的各个任务对象所包含的标志码是否与所述待编辑数据的标志码相同;
若每个任务对象所包含的标志码均与所述待编辑数据的标志码不同,则确定所述队列中不存在所述待编辑数据;
相应地,若所述队列中不存在所述待编辑数据,则将所述待编辑数据加入所述队列,包括:
若所述队列中不存在所述待编辑数据,则将所述待编辑数据及所述待编辑数据的标志码包装为新的任务对象;
将所述新的任务对象存入所述队列的尾部。
3.如权利要求1所述的数据管理方法,其特征在于,所述数据库存储于区块链中,所述数据管理方法还包括:
当接收到所述指定账号所发送的查阅请求时,获取所述指定账号的权限;
基于所述权限确定所述指定账号在缓存中的可访问数据及可编辑数据;
向所述指定账号推送所述可访问数据;
相应地,所述当接收到指定账号所发送的编辑指令时,基于所述编辑指令,对数据库进行编辑,包括:
当接收到所述指定账号基于所述可访问数据而输入的编辑指令时,检测所述编辑指令所指向的数据是否为可编辑数据;
若所述编辑指令所指向的数据为可编辑数据,则基于所述编辑指令,对数据库进行编辑。
4.如权利要求3所述的数据管理方法,其特征在于,在所述检测所述编辑指令所指向的数据是否为可编辑数据之后,所述数据管理方法还包括:
若所述编辑指令所指向的数据不为可编辑数据,则将所述指定账号的账号信息及所述编辑指令包装为临时权限请求;
向所述指定账号的上级账号发送所述临时权限请求;
若接收到所述上级账号基于所述临时权限请求所反馈的权限拒绝消息,则向所述指定账号输出权限提示。
5.如权利要求4所述的数据管理方法,其特征在于,若所述编辑指令所指向的数据不为可编辑数据,则将所述指定账号的账号信息及所述编辑指令包装为临时权限请求,包括:
若所述编辑指令所指向的数据不为可编辑数据,则根据所述指定账号及所述编辑指令更新编辑次数;
若所述编辑次数达到预设的次数阈值,则将所述指定账号的账号信息及所述编辑指令包装为临时权限请求。
6.如权利要求1所述的数据管理方法,其特征在于,所述数据管理方法还包括:
在所述缓存中,对已编辑数据进行标记;
若接收到任一账号针对所述已编辑数据的查阅请求,则向所述账号推送标记后的所述已编辑数据。
7.如权利要求6所述的数据管理方法,其特征在于,所述在所述缓存中,对已编辑数据进行标记,包括:
获取所述已编辑数据的编辑时间、编辑发起账号及比对内容,其中,所述比对内容包括编辑前的数据及编辑后的数据;
根据所述编辑时间、所述编辑发起账号及所述比对内容,对所述已编辑数据进行标记。
8.一种数据管理装置,其特征在于,包括:
数据库编辑单元,用于当接收到指定账号所发送的编辑指令时,基于所述编辑指令,对数据库进行编辑;
待编辑数据确定单元,用于在对所述数据库编辑成功后,确定与缓存相关的待编辑数据,所述待编辑数据包括:数据位置及与编辑操作相关的数据;其中,与编辑操作相关的数据包括编辑后的数据和编辑前的数据,所述数据位置是指数据在缓存中的位置;
标志码获取单元,用于获取所述待编辑数据的标志码,其中,所述标志码用于唯一的表示所述待编辑数据及所述编辑指令所指示的编辑操作,编辑指令所指示的编辑操作通过编辑码进行表示;每一编辑码对应一编辑操作,且不同编辑码所对应的操作不同;
数据检测单元,用于根据所述标志码,检测预设的队列中是否已存在所述待编辑数据;
缓存编辑单元,用于若所述队列中不存在所述待编辑数据,则将所述待编辑数据加入所述队列,以通过所述队列对所述缓存进行编辑;
所述标志码获取单元,还用于根据所述待编辑数据及所述编辑指令所指示的编辑操作,生成循环冗余校验码作为所述待编辑数据的标志码,具体包括:将编辑码及待编辑数据以预设的顺序进行拼接,并生成拼接后的数据的CRC校验码,作为待编辑数据的标志码,预设的顺序为编辑码-数据位置-编辑前的数据-编辑后的数据。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754374.8A CN111858640B (zh) | 2020-07-30 | 2020-07-30 | 一种数据管理方法、数据管理装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754374.8A CN111858640B (zh) | 2020-07-30 | 2020-07-30 | 一种数据管理方法、数据管理装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858640A CN111858640A (zh) | 2020-10-30 |
CN111858640B true CN111858640B (zh) | 2024-05-10 |
Family
ID=72945290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010754374.8A Active CN111858640B (zh) | 2020-07-30 | 2020-07-30 | 一种数据管理方法、数据管理装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858640B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151585A (ja) * | 2007-12-21 | 2009-07-09 | Duaxes Corp | データベースアクセス制御装置 |
CN102591855A (zh) * | 2012-01-13 | 2012-07-18 | 广州从兴电子开发有限公司 | 一种数据标识方法及系统 |
CN108804464A (zh) * | 2017-05-03 | 2018-11-13 | 中兴通讯股份有限公司 | 数据一致性检测方法、装置、分布式数据库及存储介质 |
CN109857812A (zh) * | 2019-02-27 | 2019-06-07 | 珠海天燕科技有限公司 | 一种处理缓存中数据的方法和装置 |
CN109871705A (zh) * | 2017-12-01 | 2019-06-11 | 中国移动通信集团广东有限公司 | 一种数据库修改方法及系统 |
CN111131076A (zh) * | 2019-12-09 | 2020-05-08 | 深圳震有科技股份有限公司 | 基于消息队列的多用途数据接收方法及系统、计算机设备 |
-
2020
- 2020-07-30 CN CN202010754374.8A patent/CN111858640B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151585A (ja) * | 2007-12-21 | 2009-07-09 | Duaxes Corp | データベースアクセス制御装置 |
CN102591855A (zh) * | 2012-01-13 | 2012-07-18 | 广州从兴电子开发有限公司 | 一种数据标识方法及系统 |
CN108804464A (zh) * | 2017-05-03 | 2018-11-13 | 中兴通讯股份有限公司 | 数据一致性检测方法、装置、分布式数据库及存储介质 |
CN109871705A (zh) * | 2017-12-01 | 2019-06-11 | 中国移动通信集团广东有限公司 | 一种数据库修改方法及系统 |
CN109857812A (zh) * | 2019-02-27 | 2019-06-07 | 珠海天燕科技有限公司 | 一种处理缓存中数据的方法和装置 |
CN111131076A (zh) * | 2019-12-09 | 2020-05-08 | 深圳震有科技股份有限公司 | 基于消息队列的多用途数据接收方法及系统、计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111858640A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3707615B1 (en) | Violation resolution in client synchronization | |
US11210426B2 (en) | Tracing objects across different parties | |
CN102629247B (zh) | 一种数据处理方法、装置和系统 | |
CN111078140B (zh) | 核电站文件上传管理方法、装置、终端设备及介质 | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN110008041B (zh) | 一种消息处理方法及装置 | |
US11940974B2 (en) | Database lock | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN107111649B (zh) | 将用户和系统数据从源位置上传到目的地位置 | |
CN114528008A (zh) | 基于分布式版本控制系统的代码管控方法、设备及介质 | |
CN113326247A (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN115185967A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20120291136A1 (en) | Preventing transfer and duplication of redundantly referenced objects across nodes of an application system | |
CN111651489A (zh) | 一种大数据处理服务器系统 | |
CN114637611A (zh) | 基于消息队列的信息处理方法、装置及计算机设备 | |
US20110270805A1 (en) | Concurrent long spanning edit sessions using change lists with explicit assumptions | |
WO2014042965A2 (en) | Bidirectional synchronization of communications and crm applications | |
CN111858640B (zh) | 一种数据管理方法、数据管理装置、电子设备及存储介质 | |
JP2012089049A (ja) | 計算機システム及びサーバ | |
CN115086047B (zh) | 接口鉴权方法、装置、电子设备及存储介质 | |
US20210383073A1 (en) | Comment management method, server and readable storage medium | |
US20080155352A1 (en) | Method and system for carrying out an operation based on a log record of a computer program | |
CN111045983B (zh) | 核电站电子文件管理方法、装置、终端设备及介质 | |
JP2010061200A (ja) | 文書管理システム及び操作履歴表示方法 | |
CN111078643A (zh) | 一种批量删除文件的方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220921 Address after: Room 2601 (Unit 07), Qianhai Free Trade Building, No. 3048, Xinghai Avenue, Nanshan Street, Qianhai Shenzhen-Hong Kong Cooperation Zone, Shenzhen, Guangdong 518000 Applicant after: Shenzhen Ping An Smart Healthcare Technology Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |