CN109597834A - 基于redis的海量数据存储方法、装置、介质和设备 - Google Patents
基于redis的海量数据存储方法、装置、介质和设备 Download PDFInfo
- Publication number
- CN109597834A CN109597834A CN201811231456.3A CN201811231456A CN109597834A CN 109597834 A CN109597834 A CN 109597834A CN 201811231456 A CN201811231456 A CN 201811231456A CN 109597834 A CN109597834 A CN 109597834A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- data
- user identity
- user
- data segment
- 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.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 claims description 75
- 230000000694 effects Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于redis的海量数据存储方法、装置、介质和设备;该方法包括:接收数据存储指令;获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;为各个用户身份标识分配对应的序列号;根据所述序列号分别存储各个用户身份标识关联的数据段。本发明技术方案,将海量数据存储在内存上的redis数据库,既能够实现海量数据的存储任务,而为用户分配序列号,根据序列号来存储用户数据能够有效提高查询数据时的遍历速度,进而提高获取用户数据的速度。
Description
技术领域
本发明涉及数据存储领域,具体而言,本发明涉及一种基于redis的海量数据存储方法、装置、介质和计算机设备。
背景技术
数据库是指存储数据的一类库存,它们能够为IT开发人员提供存取数据的极大便利,目前很多管理系统基本都需要使用数据库支持,在网络技术和计算机技术大幅度普及的今天,数据库也越来越重要。
目前市面上存储数据时都是将数据存储到磁盘上,尽管存储在磁盘上的数据具有较高的安全性,然而当磁盘上存储的数据越来越多的时候,磁盘上的数据库在读取数据时的读取速度就会越来越慢。而如果使用磁盘来存储如用户白名单等海量数据时,由于存储的数据量庞大,当需要获取用户数据时,获取用户数据的耗时会非常长。
因此如何存储如用户白名单等海量数据,并且能够保证数据的获取速度是目前亟需解决的问题。
发明内容
本发明针对现有技术的缺点,提供了一种基于redis的海量数据存储方法、装置、介质和计算机设备,通过本发明技术方案,将海量数据存储在内存上的redis数据库,既能够实现海量数据的存储任务,而为用户分配序列号,根据序列号来存储用户数据能够有效提高查询数据时的遍历速度,进而提高获取用户数据的速度。
本发明实施例根据第一方面提供了一种基于redis的海量数据存储方法,包括:
接收数据存储指令;
获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;
为各个用户身份标识分配对应的序列号;
根据所述序列号分别存储各个用户身份标识关联的数据段。
进一步地,所述根据所述序列号分别存储各个用户身份标识关联的数据段,包括:
根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置;
根据所述存储位置存储所述各个用户身份标识关联的数据段。
进一步地,所述根据所述存储位置存储所述各个用户身份标识关联的数据段,包括:
从所述各个用户身份标识关联的数据段中确定活动相关信息;
根据所述活动相关信息确定存储有效时长;
根据所述存储位置和存储有效时长存储所述各个用户身份标识关联的数据段。
进一步地,所述为各个用户身份标识分配对应的序列号,包括:
确定所述各个用户身份标识对应的若干个标识类型;
创建与各个标识类型分别对应的序列号映射表格;
按照所述各个用户身份标识对应的标识类型将所述各个用户身份标识分配到对应的序列号映射表格;
在各个序列号映射表格中,按照预设排序规则对序列号映射表格中的多个用户身份标识进行排序;
在各个序列号映射表格中,根据排序结果为所述多个用户身份标识分配对应的序列号。
进一步地,所述根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置,包括:
按照预设加密规则对各个用户身份标识对应的序列号进行加密,获得加密信息;
根据所述加密信息确定与所述序列号对应的用户身份标识关联的数据段的数据段存储位置。
进一步地,所述根据所述序列号分别存储各个用户身份标识关联的数据段,之后包括:
接收数据段获取请求,所述数据段获取请求包括用户身份信息;
确定与所述用户身份信息对应的序列号信息;
获取与所述序列号信息对应的数据段;
反馈所述数据段。
进一步地,所述根据所述用户身份信息确定对应的序列号信息,包括:
确定所述用户身份信息的类型信息;
根据所述类型信息确定对应的序列号映射表格;
从所述序列号映射表格中确定与所述用户身份信息对应的序列号信息。
本发明实施例根据第二方面提供了一种基于redis的海量数据存储装置,包括:
存储指令接收模块,用于接收数据存储指令;
用户数据获取模块,用于获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;
序列号分配模块,用于为各个用户身份标识分配对应的序列号;
数据段存储模块,用于根据所述序列号分别存储各个用户身份标识关联的数据段。
本发明实施例根据第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的基于redis的海量数据存储方法。
本发明实施例根据第四方面提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的基于redis的海量数据存储方法。
在本发明实施例中,通过接收数据存储指令;获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;为各个用户身份标识分配对应的序列号;根据所述序列号分别存储各个用户身份标识关联的数据段,也就是说本发明实施例将海量数据存储在内存上的redis数据库,既能够实现海量数据的存储任务,而为每个用户都分配对应的序列号,根据序列号来存储用户数据能够有效提高查询数据时的遍历速度,进而提高获取用户数据的速度。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的基于redis的海量数据存储方法流程示意图;
图2为本发明一个实施例的第一说明示意图;
图3为本发明一个实施例的第二说明示意图;
图4为本发明一个实施例的第三说明示意图;
图5为本发明一个实施例的基于redis海量数据存储装置的结构示意图;
图6为本发明一种实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明提供了一种基于redis的海量数据存储方法。在一实施例中,如图1所示,该基于redis的海量数据存储方法包括以下步骤:
S110:接收数据存储指令。
本实施例应用于redis数据库,redis数据库是一种非关系型内存数据库,redis数据库是一个key-value存储系统,能够支持字符串(String,简称string)、链表(List,简称list)、集合(Set,简称set)、有序集合(Sorted set,简称zset)和哈希等类型。
S120:获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识。
在本实施例中,所述用户数据包含若干个用户的数据,用户的数据包括用户的手机号码,用户ID(user id)和证件号码等。可选地,用户的数据还包括用户的出生日期,性别,国籍,头像等信息。
而用户身份标识是用来区分用户的信息,可以是用户的证件号码、手机号码或者用户ID。
S130:为各个用户身份标识分配对应的序列号。
在本实施例中,由于一般系统用户体系在区分用户时都是采用用户的手机号码或者证件号码来区分用户,即在存储用户数据时将手机号或者证件号码作为key数据,而手机号码的长度是11位,而证件号码的长度是18位,不管是手机号还是证件号码来作为区分用户的key数据,都需要占用很大存储空间,此外,key数据的长度越长,会相应地导致数据库在执行查询操作时的遍历速度变慢。
因此在本实施例中,在存储数据时不将用户的手机号码或证件号码或用户ID等数据作为key数据,而是先为用户分配一个序列号,将该序列号作为区分用户的依据。
在本实施例中的内部系统中,序列号能够唯一地区分用户,序列号可以与用户身份标识对应的,而用户身份标识包括手机号码、证件号码和用户ID中的至少一种。与序列号对应的身份信息类型越多,能使查询用户相关数据时更方便。比如,预先映射的与序列号对应的用户身份标识类型包括手机号码、证件号码和用户ID,在查询用户相关数据时,数据读取指令中最少只需要包括该用户的手机号码或证件号码或用户ID,就能够查询到该用户的相关数据;反之,预先映射的与身份标识对应的身份信息类型是手机号码,则数据读取指令中必须包括该用户的手机号码。
S140:根据所述序列号分别存储各个用户身份标识关联的数据段。
在本实施例中,将海量数据存储在内存上的redis数据库,既能够实现海量数据的存储任务,而为每个用户都分配对应的序列号,根据序列号来存储用户数据能够有效提高查询数据时的遍历速度,进而提高获取用户数据的速度。
在一个实施例中,S140:所述根据所述序列号分别存储各个用户身份标识关联的数据段,包括:
S141:根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置;
S142:根据所述存储位置存储所述各个用户身份标识关联的数据段。
在一个实施例中,S142:所述根据所述存储位置存储所述各个用户身份标识关联的数据段,包括:
S1421:从所述各个用户身份标识关联的数据段中确定活动相关信息;
在本实施例中,考虑到实际应用中,某些业务场景只在一定时间区间内有效,因此与其相关的数据也就只在该时间区间内能起到作用,如果在该类业务场景失效之后,还继续存储该类业务场景的相关数据,这会使存储资源增加了很多负担。
S1422:根据所述活动相关信息确定存储有效时长;
在redis的key-value结构中,每个key只对应一个value,要查找任意一个value都需要通过与其对应的key进行查找;如果key失效了,则找不到与该key对应的value。可以为key设置存储有效时长,当过了存储有效时长,key就会自动失效,而不需要投入人力资源来清理历史数据。
优选地,可以根据实际情况在业务场景对应的有效时间区间的基础上加上一小段时间,如3天等,作为存储用户数据的过渡时间。
比如,对于一个广告或者活动来说,用户相关数据只在广告投放后到广告下线前、或者活动生效后到活动失效前的时间区间内有效,当广告下线或者活动失效之后,用户相关数据就没有用了,而由于用户相关数据量庞大,继续存储这类数据需要占用的存储资源比重也很大,这是对存储资源的一种浪费。如果检测到用户数据的广告时间或活动的时间是7天,那么可以为该活动对应的用户数据的key数据设置10天的存储有效期,数据到了10天,就自动失效,找不到该key了。
S1423:根据所述存储位置和存储有效时长存储所述各个用户身份标识关联的数据段。
在一个实施例中,S130:所述为各个用户身份标识分配对应的序列号,包括:
S131:确定所述各个用户身份标识对应的若干个标识类型;
在本实施例中,用户的标识类型可以是用户的证件号码、手机号码或者用户ID。
S132:创建与各个标识类型分别对应的序列号映射表格。
在本实施例中,创建不同序列号映射表格,方便在需要获取数据段时,获取数据段的指令没有包含所有用户身份标识时,也能够获取到相应的数据段。
S133:按照所述各个用户身份标识对应的标识类型将所述各个用户身份标识分配到对应的序列号映射表格;
S134:在各个序列号映射表格中,按照预设排序规则对序列号映射表格中的多个用户身份标识进行排序。
在本实施例中,为手机号码、证件号码或者用户ID排序可以利用bitmap(bit-map,位图)技术来实现,bitmap就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于在存储时采用了Bit为单位来存储数据,因此可以大大节省存储空间。
在一个具体实施方式中,如果要排序的是手机号码类型的用户身份标识,排序的手机号码是13300000003、13300000006、13300000001、13300000004以及13300000002,这5个手机号码是属于13300000000-13300000007这8个号码范围内的。由于在bitmap中十进制的1对应的就是第一位,以此类推,13300000003对应的就是第13300000003位,由于手机号码都是11位数,并且目前最小的手机号码开头的号段是130,也就是说小于13000000000的十进制数字即使申请了存储空间,也是使用不到的,因此在实际使用时,不需要保存手机号码这么大的数字,可以通过设置一个计数器,比如12999999999,这样每读入一个数,就将其对应的数值减去12999999999,比如将13300000003减去12999999999得到的数值就是4,而在读取数据时,将读取到的数据加上12999999999就能获得原先的数值。
对于上述5个手机号码,存储时使用的值分别是4、7、2、5和3,只需要申请一个字节的存储空间就能存储完,申请到存储空间后将这些存储空间的所有比特位都置为0,如图2所示。
接着这5个数字进行遍历操作,遍历过程中,碰到的第一个数字是4,那么就把4对应的位置为1,如图3所示。
碰到的第二个数字是7,那么就把将第八位置为1;以此类推,一直到碰完所有的元素,将相应的位置为1,此时内存的比特位的状态如图4。
在最后再遍历一遍比特区域,将位上为1的位的编号输出(2,3,4,5,7)从而实现排序的效果。
S135:在各个序列号映射表格中,根据排序结果为所述多个用户身份标识分配对应的序列号。
在一个实施例中,S141:所述根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置,包括:
S1411:按照预设加密规则对各个用户身份标识对应的序列号进行加密,获得加密信息;
S1412:根据所述加密信息确定与所述序列号对应的用户身份标识关联的数据段的数据段存储位置。
在本实施例中,采用的是redis集群,而在redis3.0版本以上开始支持cluster(集群),采用的是hash slot(哈希槽)。Redis集群是将多个redis实例(集群中的节点)整合在一起形成一个集群,也就是将数据分散到集群的多台机器上。redis集群(redis Cluster)是一个无中心的结构,每个节点都保存数据和整个集群的状态。每个节点还会保存其它节点的信息,知道其它节点所负责的槽。并且会与其它节点定时的发送心跳信息,能够及时感知集群中异常的节点。
具体地,Redis集群中设置有16384个哈希槽,所述哈希槽用于存储数据,而这些哈希槽由redis集群中的若干主节点(master)负责,redis会根据节点数量大致均等的将哈希槽映射到不同的节点,即每个主节点负责一部分哈希槽。比如redis集群中有三个主节点,A节点、B节点和C节点,A节点负责槽[0-5000],B节点负责槽[5001-10000],C节点负责槽[100001-16383]。当需要在Redis集群中放置一个key-value时,redis会通过公式CRC16(key)mod 16383算出该key由哪个节点负责。
更具体地,redis先对key使用crc16(循环冗余检查)算法算出一个结果,然后把结果对16384取模,这样每个key都会对应一个编号在0-16383之间的哈希槽。
在一个实施例中,S140:所述根据所述序列号分别存储各个用户身份标识关联的数据段,之后包括:
S150:接收数据段获取请求,所述数据段获取请求包括用户身份信息;
S160:确定与所述用户身份信息对应的序列号信息;
S170:获取与所述序列号信息对应的数据段;
S180:反馈所述数据段。
在一个实施例中,S160:所述根据所述用户身份信息确定对应的序列号信息,包括:
S161:确定所述用户身份信息的类型信息;
S162:根据所述类型信息确定对应的序列号映射表格;
S163:从所述序列号映射表格中确定与所述用户身份信息对应的序列号信息。
在本实施例中,先确定用户身份信息的类型信息,然后再确定对应的在存储时已经区分好的序列号映射表格,通过该序列号映射表格能够快速确定与该用户身份信息对应的序列号,而通过序列号进行一系列运算可以确定序列号对应的存储位置,从该存储位置就可以找到与序列号对应的数据段。
为了更好地理解本发明技术方案,本发明实施例还提供了一种基于redis的海量数据存储装置,如图5所示,该装置包括以下模块:
存储指令接收模块110,用于接收数据存储指令;
用户数据获取模块120,用于获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;
序列号分配模块130,用于为各个用户身份标识分配对应的序列号;
数据段存储模块140,用于根据所述序列号分别存储各个用户身份标识关联的数据段。
在本实施例中,将海量数据存储在内存上的redis数据库,既能够实现海量数据的存储任务,而为每个用户都分配对应的序列号,根据序列号来存储用户数据能够有效提高查询数据时的遍历速度,进而提高获取用户数据的速度。
在一个实施例中,所述数据段存储模块140,包括:
存储位置确定子模块141:根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置;
数据段存储子模块142:根据所述存储位置存储所述各个用户身份标识关联的数据段。
在一个实施例中,所述数据段存储子模块142,包括:
活动信息确定单元1421:从所述各个用户身份标识关联的数据段中确定活动相关信息;
有效时长确定单元1422:根据所述活动相关信息确定存储有效时长;
数据段存储单元1423:根据所述存储位置和存储有效时长存储所述各个用户身份标识关联的数据段。
在一个实施例中,所述序列号分配模块130,包括:
标识类型确定子模块131:确定所述各个用户身份标识对应的若干个标识类型;
表格创建子模块132:创建与各个标识类型分别对应的序列号映射表格;
身份标识分配子模块133:按照所述各个用户身份标识对应的标识类型将所述各个用户身份标识分配到对应的序列号映射表格;
排序子模块134:在各个序列号映射表格中,按照预设排序规则对序列号映射表格中的多个用户身份标识进行排序;
序列号分配子模块135:在各个序列号映射表格中,根据排序结果为所述多个用户身份标识分配对应的序列号。
在一个实施例中,所述存储位置确定子模块141,包括:
序列号加密单元1411:按照预设加密规则对各个用户身份标识对应的序列号进行加密,获得加密信息;
存储位置确定单元1412:根据所述加密信息确定与所述序列号对应的用户身份标识关联的数据段的数据段存储位置。
在一个实施例中,所述执行数据段存储模块140对应的功能之后,还执行以下模块对应的功能:
获取请求接收模块150:接收数据段获取请求,所述数据段获取请求包括用户身份信息;
序列号确定模块160:确定与所述用户身份信息对应的序列号信息;
数据段获取模块170:获取与所述序列号信息对应的数据段;
数据段反馈模块180:反馈所述数据段。
在一个实施例中,所述序列号确定模块160,包括:
类型信息确定子模块161:确定所述用户身份信息的类型信息;
表格确定子模块162:根据所述类型信息确定对应的序列号映射表格;
序列号确定子模块163:从所述序列号映射表格中确定与所述用户身份信息对应的序列号信息。
需要说明的是,本发明实施例提供的海量数据存储装置能够实现上述基于redis的海量数据存储方法实施例所实现的功能,功能的具体实现参照上述基于redis的海量数据存储方法中的描述,在此不再赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述基于redis的海量数据存储方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
本发明实施例还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器710;
存储装置720,用于存储一个或多个程序700,
当所述一个或多个程序700被所述一个或多个处理器710执行,使得所述一个或多个处理器710实现上述基于redis的海量数据存储方法。
如图6所示为本发明计算机设备的结构示意图,包括处理器710、存储装置720、输入单元730以及显示单元740等器件。本领域技术人员可以理解,图6示出的结构器件并不构成对所有计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置720可用于存储应用程序700以及各功能模块,处理器710运行存储在存储装置720的应用程序700,从而执行设备的各种功能应用以及数据处理。存储装置720可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储装置包括但不限于这些类型的存储装置。本发明所公开的存储装置720只作为例子而非作为限定。
输入单元730用于接收信号的输入,以及接收用户输入的选择语音文件等相关请求。输入单元730可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元740可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元740可采用液晶显示器、有机发光二极管等形式。处理器710是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置720内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,计算机设备包括一个或多个处理器710,以及一个或多个存储装置720,一个或多个应用程序700,其中所述一个或多个应用程序700被存储在存储装置720中并被配置为由所述一个或多个处理器710执行,所述一个或多个应用程序700配置用于执行以上实施例所述的基于redis的海量数据存储方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于redis的海量数据存储方法,其特征在于,包括:
接收数据存储指令;
获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;
为各个用户身份标识分配对应的序列号;
根据所述序列号分别存储各个用户身份标识关联的数据段。
2.如权利要求1所述的基于redis的海量数据存储方法,其特征在于,所述根据所述序列号分别存储各个用户身份标识关联的数据段,包括:
根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置;
根据所述存储位置存储所述各个用户身份标识关联的数据段。
3.如权利要求2所述的基于redis的海量数据存储方法,其特征在于,所述根据所述存储位置存储所述各个用户身份标识关联的数据段,包括:
从所述各个用户身份标识关联的数据段中确定活动相关信息;
根据所述活动相关信息确定存储有效时长;
根据所述存储位置和存储有效时长存储所述各个用户身份标识关联的数据段。
4.如权利要求2所述的基于redis的海量数据存储方法,其特征在于,所述为各个用户身份标识分配对应的序列号,包括:
确定所述各个用户身份标识对应的若干个标识类型;
创建与各个标识类型分别对应的序列号映射表格;
按照所述各个用户身份标识对应的标识类型将所述各个用户身份标识分配到对应的序列号映射表格;
在各个序列号映射表格中,按照预设排序规则对序列号映射表格中的多个用户身份标识进行排序;
在各个序列号映射表格中,根据排序结果为所述多个用户身份标识分配对应的序列号。
5.如权利要求4所述的基于redis的海量数据存储方法,其特征在于,所述根据所述序列号确定所述各个用户身份标识关联的数据段各自对应的存储位置,包括:
按照预设加密规则对各个用户身份标识对应的序列号进行加密,获得加密信息;
根据所述加密信息确定与所述序列号对应的用户身份标识关联的数据段的数据段存储位置。
6.如权利要求1所述的基于redis的海量数据存储方法,其特征在于,所述根据所述序列号分别存储各个用户身份标识关联的数据段,之后包括:
接收数据段获取请求,所述数据段获取请求包括用户身份信息;
确定与所述用户身份信息对应的序列号信息;
获取与所述序列号信息对应的数据段;
反馈所述数据段。
7.如权利要求6所述的基于redis的海量数据存储方法,其特征在于,所述根据所述用户身份信息确定对应的序列号信息,包括:
确定所述用户身份信息的类型信息;
根据所述类型信息确定对应的序列号映射表格;
从所述序列号映射表格中确定与所述用户身份信息对应的序列号信息。
8.一种基于redis的海量数据存储装置,其特征在于,包括:
存储指令接收模块,用于接收数据存储指令;
用户数据获取模块,用于获取所述数据存储指令关联的用户数据,所述用户数据包含若干个数据段,每个数据段关联一个用户身份标识;
序列号分配模块,用于为各个用户身份标识分配对应的序列号;
数据段存储模块,用于根据所述序列号分别存储各个用户身份标识关联的数据段。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的基于redis的海量数据存储方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的基于redis的海量数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811231456.3A CN109597834B (zh) | 2018-10-22 | 2018-10-22 | 基于redis的海量数据存储方法、装置、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811231456.3A CN109597834B (zh) | 2018-10-22 | 2018-10-22 | 基于redis的海量数据存储方法、装置、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597834A true CN109597834A (zh) | 2019-04-09 |
CN109597834B CN109597834B (zh) | 2024-05-07 |
Family
ID=65958016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811231456.3A Active CN109597834B (zh) | 2018-10-22 | 2018-10-22 | 基于redis的海量数据存储方法、装置、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597834B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704548A (zh) * | 2019-09-30 | 2020-01-17 | 北京元年科技股份有限公司 | 用于多维数据库的筛选有效计算数据的系统和方法 |
CN111274249A (zh) * | 2020-01-19 | 2020-06-12 | 深圳前海微众银行股份有限公司 | 用户画像数据存储优化方法、设备及可读存储介质 |
CN111475535A (zh) * | 2020-03-09 | 2020-07-31 | 咪咕文化科技有限公司 | 数据存储、访问方法及装置 |
CN111858610A (zh) * | 2020-07-28 | 2020-10-30 | 贝壳技术有限公司 | 数据行号分配方法和装置、存储介质、电子设备 |
CN112069188A (zh) * | 2020-09-15 | 2020-12-11 | 北京值得买科技股份有限公司 | 一种高性能识别新旧设备id的方法 |
CN112148925A (zh) * | 2019-06-27 | 2020-12-29 | 北京百度网讯科技有限公司 | 用户标识关联查询方法、装置、设备及可读存储介质 |
CN113297224A (zh) * | 2021-05-31 | 2021-08-24 | 上海艾麒信息科技股份有限公司 | 一种基于Redis的海量数据分类存储方法及系统 |
CN113568929A (zh) * | 2021-07-30 | 2021-10-29 | 咪咕文化科技有限公司 | 数据存储、查询方法、装置及电子设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314480A (zh) * | 2011-07-05 | 2012-01-11 | 万达信息股份有限公司 | 一种针对海量数据的分布式数据存储方法 |
CN103577440A (zh) * | 2012-07-27 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库中的数据处理方法和装置 |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN106375425A (zh) * | 2016-08-30 | 2017-02-01 | 中国民生银行股份有限公司 | 分布式缓存的处理方法和装置 |
CN106599104A (zh) * | 2016-11-29 | 2017-04-26 | 北京锐安科技有限公司 | 一种基于redis集群的海量数据关联方法 |
CN107360224A (zh) * | 2017-07-07 | 2017-11-17 | 携程旅游信息技术(上海)有限公司 | 分布式系统中序列号生成方法、系统、设备及存储介质 |
CN107766529A (zh) * | 2017-10-27 | 2018-03-06 | 合肥城市云数据中心股份有限公司 | 一种用于污水处理行业的海量数据存储方法 |
CN107896249A (zh) * | 2017-11-16 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 跨网络区域数据访问方法、装置、设备及存储介质 |
CN108243264A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信有限公司研究院 | 一种序列号生成方法及系统 |
CN108347776A (zh) * | 2017-01-25 | 2018-07-31 | 华为技术有限公司 | 一种通信系统中资源分配的方法及设备 |
US20180240135A1 (en) * | 2014-05-08 | 2018-08-23 | Google Inc. | Building Topic-Oriented Audiences |
CN108509433A (zh) * | 2017-02-23 | 2018-09-07 | 北京京东金融科技控股有限公司 | 基于分布式系统的生成序列号的方法、装置及电子设备 |
CN108512716A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 上报设备信息的方法、系统、计算机设备和存储介质 |
US20180268045A1 (en) * | 2017-03-15 | 2018-09-20 | Microsoft Technology Licensing, Llc | Identity Mapping For Cloud Migrations |
-
2018
- 2018-10-22 CN CN201811231456.3A patent/CN109597834B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314480A (zh) * | 2011-07-05 | 2012-01-11 | 万达信息股份有限公司 | 一种针对海量数据的分布式数据存储方法 |
CN103577440A (zh) * | 2012-07-27 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库中的数据处理方法和装置 |
US20180240135A1 (en) * | 2014-05-08 | 2018-08-23 | Google Inc. | Building Topic-Oriented Audiences |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN106375425A (zh) * | 2016-08-30 | 2017-02-01 | 中国民生银行股份有限公司 | 分布式缓存的处理方法和装置 |
CN106599104A (zh) * | 2016-11-29 | 2017-04-26 | 北京锐安科技有限公司 | 一种基于redis集群的海量数据关联方法 |
CN108243264A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信有限公司研究院 | 一种序列号生成方法及系统 |
CN108347776A (zh) * | 2017-01-25 | 2018-07-31 | 华为技术有限公司 | 一种通信系统中资源分配的方法及设备 |
CN108509433A (zh) * | 2017-02-23 | 2018-09-07 | 北京京东金融科技控股有限公司 | 基于分布式系统的生成序列号的方法、装置及电子设备 |
US20180268045A1 (en) * | 2017-03-15 | 2018-09-20 | Microsoft Technology Licensing, Llc | Identity Mapping For Cloud Migrations |
CN107360224A (zh) * | 2017-07-07 | 2017-11-17 | 携程旅游信息技术(上海)有限公司 | 分布式系统中序列号生成方法、系统、设备及存储介质 |
CN107766529A (zh) * | 2017-10-27 | 2018-03-06 | 合肥城市云数据中心股份有限公司 | 一种用于污水处理行业的海量数据存储方法 |
CN107896249A (zh) * | 2017-11-16 | 2018-04-10 | 中国平安人寿保险股份有限公司 | 跨网络区域数据访问方法、装置、设备及存储介质 |
CN108512716A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 上报设备信息的方法、系统、计算机设备和存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148925A (zh) * | 2019-06-27 | 2020-12-29 | 北京百度网讯科技有限公司 | 用户标识关联查询方法、装置、设备及可读存储介质 |
CN112148925B (zh) * | 2019-06-27 | 2024-03-01 | 北京百度网讯科技有限公司 | 用户标识关联查询方法、装置、设备及可读存储介质 |
CN110704548A (zh) * | 2019-09-30 | 2020-01-17 | 北京元年科技股份有限公司 | 用于多维数据库的筛选有效计算数据的系统和方法 |
CN111274249A (zh) * | 2020-01-19 | 2020-06-12 | 深圳前海微众银行股份有限公司 | 用户画像数据存储优化方法、设备及可读存储介质 |
CN111475535A (zh) * | 2020-03-09 | 2020-07-31 | 咪咕文化科技有限公司 | 数据存储、访问方法及装置 |
CN111475535B (zh) * | 2020-03-09 | 2024-02-06 | 咪咕文化科技有限公司 | 数据存储、访问方法及装置 |
CN111858610A (zh) * | 2020-07-28 | 2020-10-30 | 贝壳技术有限公司 | 数据行号分配方法和装置、存储介质、电子设备 |
CN112069188A (zh) * | 2020-09-15 | 2020-12-11 | 北京值得买科技股份有限公司 | 一种高性能识别新旧设备id的方法 |
CN113297224A (zh) * | 2021-05-31 | 2021-08-24 | 上海艾麒信息科技股份有限公司 | 一种基于Redis的海量数据分类存储方法及系统 |
CN113297224B (zh) * | 2021-05-31 | 2022-06-28 | 上海艾麒信息科技股份有限公司 | 一种基于Redis的海量数据分类存储方法及系统 |
CN113568929A (zh) * | 2021-07-30 | 2021-10-29 | 咪咕文化科技有限公司 | 数据存储、查询方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109597834B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597834A (zh) | 基于redis的海量数据存储方法、装置、介质和设备 | |
US10180977B2 (en) | Determining and extracting changed data from a data source | |
US10237295B2 (en) | Automated event ID field analysis on heterogeneous logs | |
CN109409121B (zh) | 脱敏处理方法、装置和服务器 | |
CN107577697B (zh) | 一种数据处理方法、装置及设备 | |
CN107113341A (zh) | 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统 | |
CN110321383A (zh) | 大数据平台数据同步方法、装置、计算机设备及存储介质 | |
JP2016076003A (ja) | 命令履歴分析プログラム、命令履歴分析装置、および、命令履歴分析方法 | |
CN106599260A (zh) | 医疗信息化重复医疗文件删除系统及方法 | |
JP2021518021A (ja) | データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN110377268A (zh) | 流水号生成方法、装置及存储介质 | |
CN109800269A (zh) | 数据管理方法、装置、计算机设备及存储介质 | |
CN110781183A (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN105095425A (zh) | 一种数据库的跨库结转方法及装置 | |
CN110888756A (zh) | 一种诊断日志生成方法及装置 | |
US20080222063A1 (en) | Extensible mechanism for detecting duplicate search items | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN110442647A (zh) | 数据一致性同步方法、装置及计算机可读存储介质 | |
CN108446301B (zh) | 业务文件拆分汇总方法、装置及设备 | |
KR101614890B1 (ko) | 멀티 테넌시 이력 생성 방법, 이를 수행하는 멀티 테넌시 이력 생성 서버 및 이를 저장하는 기록매체 | |
CN117093619A (zh) | 一种规则引擎处理方法、装置、电子设备及存储介质 | |
CN111489202B (zh) | 一种发送电子券的方法及装置 | |
CN113901076A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN114253920A (zh) | 一种交易重新排序方法、装置、设备及可读存储介质 | |
CN110929207A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |