数据缓存与检索方法、系统、介质、计算机设备、终端转让专利

申请号 : CN202010552427.8

文献号 : CN111831716B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李晖郭振洋赵兴文曹进昝晓勇

申请人 : 西安电子科技大学

摘要 :

本发明属于数据缓存、检索技术领域,公开了一种数据缓存与检索方法、系统、介质、计算机设备、终端,通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索;进程间交互模块或远程过程调用模块的支持下,数据交互接口进行数据更新;通过用户行为分析组件进行用户数据预加载和用户行为安全性分析。数据检索服务一端连接数据交互接口,另一端连接数据缓存组件,数据缓存组件另一端连接数据持久化服务、数据同步服务。本发明利用数据交互接口接受消息请求,数据检索服务进行数据检索,在数据缓存组件和数据持久化组件完成数据请求和缓存,通过数据同步服务完成数据修改并保证事务一致性;有效提高数据缓存与检索效率。

权利要求 :

1.一种数据缓存与检索方法,其特征在于,所述数据缓存与检索方法包括:

通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索;

通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新;

通过用户行为分析组件进行用户数据预加载和用户行为安全性分析;

数据检索服务将数据返回给用户的同时,将数据按照海量电子凭据场景数据特征和用户自定义的特征进行多关键字提取和映射,在数据缓存中保存多关键字映射值及其对应的检索数据;

支持多关键字检索时每个实体为单例,即内存中只有一份副本,而不是每个关键字对应一份实体;

所述数据缓存与检索方法的数据交互接口有进程间交互模块和远程过程调用模块组成,进程间交互模块根据POSIX标准开发,支持的进程间交互方式包括:命名管道FIFO、管道PIPE、共享内存Shared Memory、套接字socket、消息队列MQ,远程过程调用模块是基于Google远程过程调用gRPC框架开发的服务;数据交互接口与数据检索服务接口属于API调用关系,数据检索服务是基于布隆过滤器和海量电子凭据场景下,数据特征的映射表,数据检索服务判断数据交互接口传出的键值是否能在数据缓存组件中命中,如果命中则数据缓存组件直接进行缓存查找,否则数据缓存组件向数据持久化服务进行数据请求,并将结果保存在数据缓存组件当中;

数据缓存组件由海量电子凭据场景数据特征提取器、用户自定义关键字提取器、用户行为分析组件、缓存置换组件、用户身份快速切换组件组成,用户行为分析组件采用机器学习的方式,根据用户被检索行为进行用户分析,从而达到用户信息预缓存、用户信息风险评估的目的,缓存置换组件是根据最近最少使用算法LRU算法开发的数据管理组件,用户身份快速切换组件是由实体多元身份环构建的用户身份关联映射,用于同一实体在海量电子凭据场景下进行身份快速切换。

2.如权利要求1所述的数据缓存与检索方法,其特征在于,所述通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索包括:用户或海量电子凭据场景下用户认证服务器作为代表用户的程序,根据运行场景不同采用不同方式数据请求发起数据获取请求;

数据交互接口进行请求解析后,分离出代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为检索条件中的某一或某几项,分析其请求的数据为上述获取请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若数值在数据缓存组件中存在一样的映射值,则直接返回该映射值在数据缓存服务中对应的某一或某几字段的值,若该映射值在数据缓存组件中不存在,则向数据持久化服务提出查询请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据返回给数据检索服务。

3.如权利要求2所述的数据缓存与检索方法,其特征在于,所述数据请求包括:

1)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则代表用户的程序可以通过管道PIPE与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

2)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则代表用户的程序可以通过命名管道FIFO、共享内存Shared Memory、套接字socket、消息队列MQ与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

3)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则代表用户的程序可以通过消息队列MQ、远程过程调用RPC与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

数据获取请求的内容包括:

1)依据某种检索条件查询某个用户的某项数据;

2)依据某项检索条件查询某个用户的全部数据;

3)依据某项检索条件检索满足检索条件的所有用户的某项数据;

4)依据某项检索条件检索满足条件的所有用户的全部数据;

检索条件包括:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号或其特征值、6)用户自定义查询选项。

4.如权利要求1所述的数据缓存与检索方法,其特征在于,所述通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新包括:用户或海量电子凭据场景下用户认证服务器作为代表用户的程序,根据运行场景不同采用不同方式数据请求方式发起数据更改请求;

数据交互接口进行请求解析后,分离出所述代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为检索条件中的某一或某几项,分析其请求更新的数据为更新请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若映射值在数据缓存组件中不存在,则向数据持久化服务提出数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若设置在数据缓存组件中存在一样的映射值,则数据缓存组件首先锁定数据缓存组件中关键字在哈希映射下的映射值所对应的记录,记录当前的值,并将对应字段设置为新的值,并向数据同步服务提交更改请求;数据同步组件首先向数据持久化服务痛楚数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若数据持久化服务成功将数值进行更新,则数据同步组件要求数据缓存组件解除数据缓存组件中关键字在哈希映射下的映射值所对应的记录的锁定,若失败,则要求数据缓存组件进行数据回滚,随后解除数据缓存组件中关键字在哈希映射下的映射值所对应的记录的锁定;

请求方式包括:

1)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则所述代表用户的程序可以通过管道PIPE与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

2)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则所述代表用户的程序可以通过命名管道FIFO、共享内存Shared Memory、套接字socket、消息队列MQ与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

3)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则所述代表用户的程序可以通过消息队列MQ、远程过程调用RPC与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;

数据更新请求的内容包括:

1)依据某种检索条件更新某个用户的某一或某几项数据;

2)依据某项检索条件更新满足检索条件的所有用户的某一或某几项数据;

检索条件包括:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号或其特征值、6)用户自定义查询选项。

5.如权利要求1所述的数据缓存与检索方法,其特征在于,所述通过用户行为分析组件进行用户数据预加载和用户行为安全性分析包括:用户数据被检索的行为在海量电子凭据场景下,被认为是一种用户使用海量电子凭据服务的行为,该行为是被认为其具有行为特征,一种海量电子凭据场景下数据缓存与检索方法设置有用户行为分析组件,该组件通过用户被检索的日志,进行用户行为分析,并做到用户信息提前加载并对用户行为进行安全检测。

6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1 5~任意一项所述数据缓存与检索方法的步骤。

7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1 5任意一项所述数据缓存与检索方法的步骤。

~

8.一种实施权利要求1 5任意一项所述数据缓存与检索方法的数据缓存与检索系统,~

其特征在于,所述数据缓存与检索系统包括:数据交互接口、数据检索服务、数据缓存组件、数据持久化服务;

数据交互接口一端通过API调用方式连接数据检索服务,数据检索服务通过API调用方式连接数据缓存组件、数据缓存组件另一端连接数据持久化服务,同时连接数据同步服务;

数据交互接口设置有进程间交互模块,远程过程调用模块,海量电子凭据场景特征提取器,用户自定义关键字提取器,用户行为分析组件、缓存置换组件,用户身份快速切换组件;

数据交互接口在进程间交互模块和远程过程调用模块的支持下,对用户侧完成数据交互,利用数据检索服务、数据缓存组件、数据持久化服务、数据同步服务完成海量电子票据场景下用户数据的缓存与高速索引;

数据交互接口包括有进程间交互模块,远程过程调用模块;

数据缓存组件包括有海量电子凭据场景特征提取器,用户自定义关键字提取器、用户行为分析组件、缓存置换组件、用户身份快速切换组件。

9.一种终端,其特征在于,所述终端搭载权利要求8所述的数据缓存与检索系统。

说明书 :

数据缓存与检索方法、系统、介质、计算机设备、终端

技术领域

[0001] 本发明属于数据缓存、检索技术领域,尤其涉及一种数据缓存与检索方法、系统、介质、计算机设备、终端。

背景技术

[0002] 目前,随着信息技术的发展和金融科技的进步,大数据、云计算、人工智能、移动互联等推动凭据产业发生变革,使得整个凭据产业朝着移动化、智能化、场景化、电子化的方向发展。电子凭据的使用大大简化业务办理流程,提高办事效率,同时也有利于后续的财务管理、各种审核和稽查。无纸化是未来凭据的发展方向。凭据电子化在带来便利的同时,需要对电子凭据的安全性进行配套考虑。而身份认证是电子凭据流转过程中安全性考虑的首要环节。电子凭据身份认证方法需要与电子凭据发展模式和具体业务场景相适应,提供更多的安全功能和服务,满足差异化的安全需求和用户体验,提高认证的透明性和无感性。传统的基于卡片的身份认证模式,不能根据具体的应用场景、不同安全需求进行无缝认证。不同的场景需要提供不同的身份证明,这种认证方式远远不能满足电子凭据业务流程新的发展模式对身份认证提出的新要求。认证方式应根据应用场景自动匹配透明认证,比如手机的指纹认证、特定场景下的刷脸认证等。另一方面,随着大数据、云计算等技术的发展,大量的数据放在云端,电子凭据业务涉及到用户大量的隐私信息,如何保护用户隐私信息也对身份认证技术提出了新的挑战。
[0003] 随着社会及经济的飞速发展,计算机的应用领域越来越广泛,其中在数据查找领域的应用越来越多。在诸如认证、登录、检索等方面的需求越来越大,对数据检索的方法的速度的要求也比较严格,其中在应用开发方面,传统用户名查找方法耗时耗力,代码量大,系统变更困难,而且查找数据要在代码阶段完成,不可以再运行阶段进行变更;开发量大,数据检索过程缓慢,易用性和效率较低,具有一定的局限性。以现有内存型数据库Redis为例,Redis提供的可支持的数据类型主要支持字符串、哈希表、列表、集合、有序集合五种,而在更多的应用场景下,使用者更多的是需要存储用户实体,此时就需要使用者在使用是提供一个用户实体与字符串相互转化的方法,比如现有的JSON格式或XML格式,但是上述两种方法虽然使使用者在实体与字符串之间相互转化的实现上提供了简便的操作,但是在相互转化的时候增加了操作量和中间状态,使使用更加复杂;同时,当一个实体需要支持多个关键字,Redis常见的操作为1)对每个关键字复制一份实体转化的字符串或2)建立一个关键字映射表。在这种操作是,用户实体的增删、修改操作变为非常复杂,即当某一个关键字对应的值变动时,需要对其他的key值进行修改,而单例模式的话可以解决这个问题,单例模式下,多个关键字指向的值的副本为同一个,通过任何一个关键字进行数据修改的时候,每一个关键字对应的值都进行了修改;另外使用者在使用Redis作为内存型数据库的同时,往往依旧要自己写一套所用的关系型数据库的数据库操作代码,无疑增加了代码量,并且数据库操作代码和关键的处理代码或程序耦合度较大,很难做到运行时或动态变更,而海量电子票据环境下,对用户实体进行检索的要求较大,对数据检索速度要求也较大,因此亟需一种在海量电子票据环境下用户身份及票据快速查询与检索技术及系统。
[0004] 通过上述分析,现有技术存在的问题及缺陷为:传统用户名查找方法耗时耗力,代码量大,系统变更困难,而且查找数据要在代码阶段完成,不可以再运行阶段进行变更;开发量大,数据检索过程缓慢,易用性和效率较低,具有一定的局限性。
[0005] 解决以上问题及缺陷的难度为:要解决上述问题,本发明需要达到的目标为:提供一种与关键处理代码解耦合、支持多种检索和自定义检索方式、速度不亚于现有内存检索方式,支持用户实体多关键字检索、支持多关键字检索时每个实体为单例(即内存中只有一份副本)而不是每个关键字对应一份实体(或实体序列化后的字符串)的数据缓存和检索方法。
[0006] 解决以上问题及缺陷的意义为:本发明需要满足查找方式不慢于现有查找方式的;开发代码量比现有方式更少;易用性和效率较现有方式有所提升。本发明可以在任意服务器上,对数据进行快速检索和缓存,可以推动海量电子凭据场景下信息快速检索和查询相关技术,并且在互联网快速发展的今天,将本发明进行适当扩展,可以实现其他领域数据的快速检索和缓存。

发明内容

[0007] 针对现有技术存在的问题,本发明提供了一种数据缓存与检索方法、系统、介质、计算机设备、终端。
[0008] 本发明是这样实现的,一种数据缓存与检索方法,所述数据缓存与检索方法包括:
[0009] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索;
[0010] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新;
[0011] 通过用户行为分析组件进行用户数据预加载和用户行为安全性分析。
[0012] 进一步,所述数据缓存与检索方法的数据交互接口有进程间交互模块和远程过程调用模块组成,进程间交互模块根据POSIX标准开发,支持的进程间交互方式包括:命名管道FIFO、管道PIPE、共享内存Shared Memory、套接字socket、消息队列MQ,远程过程调用模块是基于Google远程过程调用gRPC框架开发的服务;数据交互接口与数据检索服务接口属于API调用关系,数据检索服务是基于布隆过滤器和海量电子凭据场景下,数据特征的映射表,数据检索服务判断数据交互接口传出的键值是否能在数据缓存组件中命中,如果命中则数据缓存组件直接进行缓存查找,否则数据缓存组件向数据持久化服务进行数据请求,并将结果保存在数据缓存组件当中;
[0013] 数据缓存组件由海量电子凭据场景数据特征提取器、用户自定义关键字提取器、用户行为分析组件、缓存置换组件、用户身份快速切换组件组成。用户行为分析组件采用机器学习的方式,根据用户被检索行为进行用户分析,从而达到用户信息预缓存、用户信息风险评估的目的,缓存置换组件是根据最近最少使用算法LRU算法开发的数据管理组件,用户身份快速切换组件是由实体多元身份环构建的用户身份关联映射,用于同一实体在海量电子凭据场景下进行身份快速切换。
[0014] 进一步,所述通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索包括:用户或海量电子凭据场景下用户认证服务器等代表用户的程序,根据运行场景不同采用不同方式数据请求方式发起数据获取请求;
[0015] 数据交互接口进行请求解析后,分离出代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为上述检索条件中的某一或某几项,分析其请求的数据为上述获取请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若该数值在数据缓存组件中存在一样的映射值,则直接返回该映射值在数据缓存服务中对应的某一或某几字段的值,若该映射值在数据缓存组件中不存在,则向数据持久化服务提出查询请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据返回给数据检索服务;数据检索服务将数据返回给用户的同时,将数据按照海量电子凭据场景数据特征和用户自定义的特征进行多关键字提取和映射,在数据缓存中保存多关键字映射值及其对应的检索数据。
[0016] 进一步,所述数据请求方式包括:
[0017] 1)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则代表用户的程序可以通过管道PIPE与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0018] 2)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则代表用户的程序可以通过命名管道FIFO、共享内存Shared Memory、套接字socket、消息队列MQ与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0019] 3)若代表用户的程序与运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则代表用户的程序可以通过消息队列MQ、远程过程调用RPC与运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0020] 数据获取请求的内容包括:
[0021] 1)依据某种检索条件查询某个用户的某项数据;
[0022] 2)依据某项检索条件查询某个用户的全部数据;
[0023] 3)依据某项检索条件检索满足检索条件的所有用户的某项数据;
[0024] 4)依据某项检索条件检索满足条件的所有用户的全部数据;
[0025] 检索条件包括:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号或其特征值、6)用户自定义查询选项。
[0026] 进一步,所述通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新包括:用户或海量电子凭据场景下用户认证服务器等代表用户的程序,根据运行场景不同采用不同方式数据请求方式发起数据更改请求;
[0027] 数据交互接口进行请求解析后,分离出所述代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为上述检索条件中的某一或某几项,分析其请求更新的数据为上述更新请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若该映射值在数据缓存组件中不存在,则向数据持久化服务提出数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若该设置在数据缓存组件中存在一样的映射值,则数据缓存组件首先锁定该条记录,记录当前的值,并将对应字段设置为新的值,并向数据同步服务提交更改请求;数据同步组件首先向数据持久化服务痛楚数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若数据持久化服务成功将数值进行更新,则数据同步组件要求数据缓存组件解除该条记录的锁定,若失败,则要求数据缓存组件进行数据回滚,随后解除该条记录的锁定;
[0028] 请求方式包括:
[0029] 1)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则所述代表用户的程序可以通过管道PIPE与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0030] 2)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则所述代表用户的程序可以通过命名管道FIFO、共享内存Shared Memory、套接字socket、消息队列MQ与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0031] 3)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则所述代表用户的程序可以通过消息队列MQ、远程过程调用RPC与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接;
[0032] 数据更新请求的内容包括:
[0033] 1)依据某种检索条件更新某个用户的某一或某几项数据;
[0034] 2)依据某项检索条件更新满足检索条件的所有用户的某一或某几项数据;
[0035] 检索条件包括:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号或其特征值、6)用户自定义查询选项。
[0036] 进一步,所述通过用户行为分析组件进行用户数据预加载和用户行为安全性分析包括:用户数据被检索的行为在海量电子凭据场景下,被认为是一种用户使用海量电子凭据服务的行为,该行为是被认为其具有行为特征,一种海量电子凭据场景下数据缓存与检索方法设置有用户行为分析组件,该组件通过用户被检索的日志,进行用户行为分析,并做到用户信息提前加载并对用户行为进行安全检测。
[0037] 本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
[0038] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索;
[0039] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新;
[0040] 通过用户行为分析组件进行用户数据预加载和用户行为安全性分析。
[0041] 本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
[0042] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索;
[0043] 通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新;
[0044] 通过用户行为分析组件进行用户数据预加载和用户行为安全性分析。
[0045] 本发明的另一目的在于提供一种实施所述数据缓存与检索方法的数据缓存与检索系统,所述数据缓存与检索系统包括:数据交互接口、数据检索服务、数据缓存组件、数据持久化服务;
[0046] 数据交互接口一端通过API调用方式连接数据检索服务,数据检索服务通过API调用方式连接数据缓存组件、数据缓存组件另一端连接数据持久化服务,同时连接数据同步服务;
[0047] 数据交互接口设置有进程间交互模块,远程过程调用模块,海量电子凭据场景特征提取器,用户自定义关键字提取器,用户行为分析组件、缓存置换组件,用户身份快速切换组件;
[0048] 数据交互接口在进程间交互模块和远程过程调用模块的支持下,对用户侧完成数据交互,利用数据检索服务、数据缓存组件、数据持久化服务、数据同步服务完成海量电子票据场景下用户数据的缓存与高速索引;
[0049] 数据交互接口包括有进程间交互模块,远程过程调用模块;
[0050] 数据缓存组件包括有海量电子凭据场景特征提取器,用户自定义关键字提取器、用户行为分析组件、缓存置换组件、用户身份快速切换组件。
[0051] 本发明的另一目的在于提供一种终端,所述终端搭载所述的数据缓存与检索系统。
[0052] 结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明利用映射和内存索引结构的结合下,用户可以将用户数据快速插入到索引结构的相应位置,并通过用户数据不同特征值在此结构中快速、准确的查找出对应用户数据;利用机器学习的方式可以对用户行为进行分析,从而达到用户信息预加载,用户行为安全分析。本发明结构合理,可以有效地提高用户数据的查找准确性和效率。
[0053] 为证明本发明所具备的优点和积极效果,本发明在现有的服务器上进行测试并给出测试方案和测试结果。
[0054] 本发明使用的服务器系统为CentOS Linux release 7.6.1810,其CPU型号为Intel Xeon(R)Gold 6240,内存大小为256GB。本发明在上述服务器上同时部署了本发明给出的程序(qsDataStruct)和最新版的Redis程序。本发明通过脚本生成了30万条用户数据并将这30万条数据,以四种关键字索引的方式同时插入到本发明给出的程序和Redis程序中。插入完成后,通过系统自带的“System Monitor(系统监视器)”程序,本发明可以观察到两个程序的内存占用情况,图中“Memory”一项为程序所占的内存,结果如图3、图4所示。
[0055] 由图3、图4可知,本发明在海量电子凭据场景下,用户实体被多key索引的场景下,内存占用较少,与现有的Redis程序相比有较大优势。
[0056] 为测试本发明的检索速率,本发明进行了如下测试:在上述插入的用户中,本发明随机选取了五万用户进行随机检索,并使用性能测试工具jmeter进行性能测试。为作为对照,本发明使用了Redis自带的性能测试工具(Redis‑benchmark)进行了测试。Jmeter性能测试的结果以TPS(Transaction per second)的形式、Apdex(Application Performance Index)的形式和测试统计(Statistics)的形式给出。结果如图5、图6、图7、图8所示。
[0057] 由图5和图8可知。Redis在测试环境下,GET的速率可以到达61728.39RPS(requests per second),本发明在测试环境下,GET的速率基本稳定在10万TPS以上,由此可以说明,本发明GET速率较Redis有较大优势,并由图6可知本发明在测试中Apdex得分达到了最高的1.0。由图7可知,本次测试共执行了三千万次请求,错误率为0.00%,响应时间(Response Tiems)均值为0.96毫秒,其throughput为100413.7事务/秒(Transactions/s)。

附图说明

[0058] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0059] 图1是本发明实施例提供的数据缓存与检索方法流程图。
[0060] 图2是本发明实施例提供的数据缓存与检索系统的结构示意图;
[0061] 图中:1、数据交互接口;2、数据检索服务;3、数据缓存组件;4、数据持久化服务。
[0062] 图3是本发明实施例测试时内存占用情况示意图。
[0063] 图4是本发明实施例测试时Redis程序内存占用情况示意图。
[0064] 图5是本发明实施例测试结果TPS数据图。
[0065] 图6是本发明实施例测试结果Apdex数据图。
[0066] 图7是本发明实施例测试结果测试统计数据图。
[0067] 图8是Redis自带的性能测试工具(Redis‑benchmark)测试结果图。

具体实施方式

[0068] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0069] 针对现有技术存在的问题,本发明提供了一种数据缓存与检索方法、系统、介质、计算机设备、终端,下面结合附图对本发明作详细的描述。
[0070] 如图1所示,本发明提供的数据缓存与检索方法包括以下步骤:
[0071] S101:通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据检索。
[0072] S102:通过进程间交互模块或远程过程调用模块的支持下,通过数据交互接口进行数据更新。
[0073] S103:通过用户行为分析组件进行用户数据预加载和用户行为安全性分析。
[0074] 本发明提供的数据缓存与检索方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的数据缓存与检索方法仅仅是一个具体实施例而已。
[0075] 如图1所示,本发明实施例提供的一种海量电子凭据场景下,数据缓存与检索系统结构包括:数据交互接口1、数据检索服务2、数据缓存组件3、数据持久化服务4。
[0076] 数据交互接口1一端通过API调用方式连接数据检索服务2,数据检索服务2通过API调用方式连接数据缓存组件3、数据缓存组件3另一端连接数据持久化服务,同时连接数据同步服务5。数据交互接口1设置有进程间交互模块6,远程过程调用模块7,海量电子凭据场景特征提取器8,用户自定义关键字提取器9,用户行为分析组件10、缓存置换组件11,用户身份快速切换组件12;
[0077] 本发明利用数据交互接口1在进程间交互模块6和远程过程调用模块7的支持下,对用户侧完成数据交互,利用数据检索服务2、数据缓存组件3、数据持久化服务4、数据同步服务5完成海量电子票据场景下用户数据的缓存与高速索引。
[0078] 其中,数据交互接口1包括有进程间交互模块6,远程过程调用模块7。
[0079] 其中,数据缓存组件3包括有海量电子凭据场景特征提取器8,用户自定义关键字提取器9、用户行为分析组件10、缓存置换组件11、用户身份快速切换组件12。
[0080] 数据交互接口主要有进程间交互模块和远程过程调用模块组成,进程间交互模块根据POSIX标准开发,支持的进程间交互方式包括:命名管道(FIFO)、管道(PIPE)、共享内存(Shared Memory)、套接字(socket)、消息队列(Message Queue,MQ),远程过程调用模块是基于Google远程过程调用(gRPC)框架开发的服务。数据交互接口与数据检索服务接口属于API调用关系,数据检索服务是基于布隆过滤器和海量电子凭据场景下,数据特征的映射表,数据检索服务可以判断数据交互接口传出的键值是否能在数据缓存组件中命中,如果可以命中则数据缓存组件直接进行缓存查找,否则数据缓存组件向数据持久化服务进行数据请求,并将结果保存在数据缓存组件当中。数据缓存组件由海量电子凭据场景数据特征提取器、用户自定义关键字提取器、用户行为分析组件、缓存置换组件、用户身份快速切换组件组成。用户行为分析组件采用机器学习的方式,根据用户被检索行为进行用户分析,从而达到用户信息预缓存、用户信息风险评估的目的,缓存置换组件是根据“最近最少使用算法(LRU)”算法开发的数据管理组件,用户身份快速切换组件是由实体多元身份环构建的用户身份关联映射,主要用于同一实体在海量电子凭据场景下进行身份快速切换。
[0081] 下面结合具体实施例对本发明的技术方案作进一步的描述。
[0082] 本发明实施例提供的一种海量电子凭据场景下,数据缓存与检索方法具体包括:
[0083] (1)用户或海量电子凭据场景下用户认证服务器等代表用户的程序,根据运行场景不同采用不同方式数据请求方式发起数据获取请求,请求方式包括但不限于:1)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则所述代表用户的程序可以通过管道(PIPE)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。2)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则所述代表用户的程序可以通过命名管道(FIFO)、共享内存(Shared Memory)、套接字(socket)、消息队列(MQ)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。3)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则所述代表用户的程序可以通过消息队列(MQ)、远程过程调用(RPC)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。其数据获取请求的内容包括但不限于:1)依据某种检索条件查询某个用户的某项数据。2)依据某项检索条件查询某个用户的全部数据。3)依据某项检索条件检索满足检索条件的所有用户的某项数据。4)依据某项检索条件检索满足条件的所有用户的全部数据。上述检索条件包括但不限于:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号(或其特征值)、6)用户自定义查询选项。数据交互接口进行请求解析后,分离出所述代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为上述检索条件中的某一或某几项,分析其请求的数据为上述获取请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若该数值在数据缓存组件中存在一样的映射值,则直接返回该映射值在数据缓存服务中对应的某一或某几字段的值,若该映射值在数据缓存组件中不存在,则向数据持久化服务提出查询请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据返回给数据检索服务;数据检索服务将数据返回给用户的同时,将数据按照海量电子凭据场景数据特征和用户自定义的特征进行多关键字提取和映射,在数据缓存中保存多关键字映射值及其对应的检索数据。
[0084] (2)用户或海量电子凭据场景下用户认证服务器等代表用户的程序,根据运行场景不同采用不同方式数据请求方式发起数据更改请求,请求方式包括但不限于:1)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为父子进程,则所述代表用户的程序可以通过管道(PIPE)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。2)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为没有亲缘关系的、运行在同一机器上的两个计算机进程时,则所述代表用户的程序可以通过命名管道(FIFO)、共享内存(Shared Memory)、套接字(socket)、消息队列(MQ)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。3)若所述代表用户的程序与所述运行海量电子凭据场景下,数据缓存与检索方法的系统为运行在不同机器上的两个计算机进程时,则所述代表用户的程序可以通过消息队列(MQ)、远程过程调用(RPC)与所述运行海量电子凭据场景下,数据缓存与检索方法的系统建立请求连接。其数据更新请求的内容包括但不限于:1)依据某种检索条件更新某个用户的某一或某几项数据。2)依据某项检索条件更新满足检索条件的所有用户的某一或某几项数据。上述检索条件包括但不限于:1)用户名、2)用户唯一ID、3)用户手机号、4)用户邮箱、5)用户身份证号(或其特征值)、6)用户自定义查询选项。数据交互接口进行请求解析后,分离出所述代表用户的程序发送来的数据请求数据包中的检索种类,将其归类为上述检索条件中的某一或某几项,分析其请求更新的数据为上述更新请求的内容中的哪一类,并得到对应的某一或某几项字段,随后向数据检索服务发起检索请求,数据检索服务利用哈希映射处理请求服务关键字的映射值,若该映射值在数据缓存组件中不存在,则向数据持久化服务提出数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若该设置在数据缓存组件中存在一样的映射值,则数据缓存组件首先锁定该条记录,记录当前的值,并将对应字段设置为新的值,并向数据同步服务提交更改请求;数据同步组件首先向数据持久化服务痛楚数据更新请求;数据持久化服务根据请求服务中的对应某一或某几项检索条件,依照请求服务中传入的关键字,执行数据单表或多表查询找到用户请求所需的数据,并将数据进行更新;若数据持久化服务成功将数值进行更新,则数据同步组件要求数据缓存组件解除该条记录的锁定,若失败,则要求数据缓存组件进行数据回滚,随后解除该条记录的锁定。
[0085] (3)用户数据被检索的行为在海量电子凭据场景下,会被认为是一种用户使用海量电子凭据服务的行为,该行为是可以被认为其具有行为特征,一种海量电子凭据场景下数据缓存与检索方法设置有用户行为分析组件,该组件可以通过用户被检索的日志,进行用户行为分析,并可以做到用户信息提前加载并对用户行为进行安全检测。
[0086] 本发明实施例的一种具体应用方案为海量电子票据场景下,用户认证服务器数据预缓存和快速检索方案。在海量电子票据场景下,用户认证行为是可以被认为用户的一种行为习惯,用户登录的时间段、IP段、认证方式等特征均可用来进行机器学习从而提取用户行为模型,用户认证服务在启动时,调用本发明给出的一种启动脚本,该脚本会启动本发明给出的程序,此时本发明所述程序和用户认证服务采用套接字(socket)的方式进行数据请求,而数据返回可以为约定的共享内存或套接字的方式进行。本发明所述程序对所有用户进行行为分析,做到数据预加载、用户检索行为安全分析等功能。
[0087] 为证明本发明所具备的优点和积极效果,本发明在现有的服务器上进行测试并给出测试方案和测试结果。
[0088] 本发明使用的服务器系统为CentOS Linux release 7.6.1810,其CPU型号为Intel Xeon(R)Gold 6240,内存大小为256GB。本发明在上述服务器上同时部署了本发明给出的程序(qsDataStruct)和最新版的Redis程序。本发明通过脚本生成了30万条用户数据并将这30万条数据,以四种关键字索引的方式同时插入到本发明给出的程序和Redis程序中。插入完成后,通过系统自带的“System Monitor(系统监视器)”程序,本发明可以观察到两个程序的内存占用情况,图中“Memory”一项为程序所占的内存,结果如图3、图4所示。
[0089] 由图3、图4可知,本发明在海量电子凭据场景下,用户实体被多key索引的场景下,内存占用较少,与现有的Redis程序相比有较大优势。
[0090] 为测试本发明的检索速率,本发明进行了如下测试:在上述插入的用户中,本发明随机选取了五万用户进行随机检索,并使用性能测试工具jmeter进行性能测试。为作为对照,本发明使用了Redis自带的性能测试工具(Redis‑benchmark)进行了测试。Jmeter性能测试的结果以TPS(Transaction per second)的形式、Apdex(Application Performance Index)的形式和测试统计(Statistics)的形式给出。结果如图5、图6、图7、图8所示。
[0091] 由图5和图8可知。Redis在测试环境下,GET的速率可以到达61728.39RPS(requests per second),本发明在测试环境下,GET的速率基本稳定在10万TPS以上,由此可以说明,本发明GET速率较Redis有较大优势,并由图6可知本发明在测试中Apdex得分达到了最高的1.0。由图7可知,本次测试共执行了三千万次请求,错误率为0.00%,响应时间(Response Tiems)均值为0.96毫秒,其throughput为100413.7事务/秒(Transactions/s)。
[0092] 应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD‑ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0093] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。