数据存储、查询方法和相关设备与流程

文档序号:30287683发布日期:2022-06-04 13:19阅读:69来源:国知局
数据存储、查询方法和相关设备与流程

1.本发明涉及数据处理技术领域,特别涉及数据存储、查询方法和相关设备。


背景技术:

2.随着互联网的发展,互联网用户越来越多,而随着用户的使用,与用户有关的信息越来越多,例如用户的购买记录,用户的登陆记录等。因此随着时间的推移和用户的增长,用户信息越来越多。在用户相关的信息中,最为常见的信息时用户登陆状态的记录。
3.用户处于登陆状态,在后续访问时用户登陆状态的记录一般采用字节进行存储,使用hash值对进行查找。例如某网站存在1000万用户,则同一时间需要用1000万/1024/1024≈9.5mb的空间进行存储。因此存储所占用的空间较大,存储空间大也带来了存储不变等问题。


技术实现要素:

4.本发明要解决的技术问题在于针对用户登陆状态存储难度较大,针对现有技术的不足,提供数据存储、查询方法和相关设备。
5.为了解决上述技术问题,本发明所采用的技术方案如下:一种数据存储方法,所述方法包括:获取活跃状态修改指令,其中,所述活跃状态修改指令包括用户账号和所述用户账号对应的活跃状态;根据所述用户账号,确定对应的存储字节和字节位数;根据所述字节位数和所述活跃状态,生成与所述用户账号对应的第一理想状态值;以所述存储字节的数值为真实状态值,对所述真实状态值和所述第一理想状态值进行位与运算,得到第一位与数值;根据所述第一位与数值和所述第一理想状态值,对所述真实状态值进行更新,得到所述活跃状态修改指令对应的状态更新值。
6.可选地,所述用户账号为数字;所述根据所述用户账号,确定对应的存储字节和字节位数包括:将所述用户账号和预设的存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数;将所述整数部分作为存储字节,以及将所述余数部分作为字节位数。
7.可选地,所述活跃状态包括活跃和非活跃;所述根据所述字节位数和所述活跃状态,生成与所述用户账号对应的第一理想状态值包括:当所述活跃状态为活跃时,以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的用户状态数值;当所述活跃状态为非活跃时,确定所述第一理想状态值为零。
8.可选地,所述根据所述第一位与数值和所述第一理想状态值,对所述真实状态值进行更新,得到所述活跃状态修改指令对应的状态更新值包括:当所述第一位与数值大于所述第一理想状态值时,以所述真实状态值为被减数,所述第一理想状态值为减数,对所述真实状态值和所述第一理想状态值进行减法运算,得到与所述活跃状态修改指令对应的状态更新值;当所述第一位与数值小于所述第一理想状态值时,计算所述真实状态值与所述第一理想状态值之和,得到与所述活跃状态修改指令对应的状态更新值。
9.一种数据查询方法,所述方法包括:获取待查询的用户账号;根据预设的存储位数,确定所述用户账号对应的存储字节和字节位数;根据所述存储字节和预设的理想活跃值,计算与所述用户账号对应的第二理想状态值;以所述存储字节的数值为真实状态值,对所述真实状态值和所述第二理想状态值进行位与运算,得到第二位与数值;根据所述第二位与数值与所述第二理想状态值,确定所述用户账号对应的活跃状态。
10.可选地,所述用户账号为数字;所述根据预设的存储位数,确定所述用户账号对应的存储字节和字节位数包括:将所述用户账号和所述存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数;将所述整数部分作为存储字节,以及将所述余数部分作为字节位数。
11.可选地,所述根据所述存储字节,计算与所述用户账号对应的第二理想状态值包括:以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的第二理想状态值。
12.可选地,所述根据所述第二位与数值与所述第二理想状态值,确定所述用户账号对应的活跃状态包括:当所述第二位与数值与所述第二理想状态值相等时,确定所述用户账号对应的活跃状态为所述理想活跃值;当所述第一位与数值与所述第二理想状态值不相等时,确定所述用户账号对应的活跃状态为非理想活跃值。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的数据查询和/或数据存储方法中的步骤。
14.一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述通信总线实现处理器和存储器之间的连接通信;所述处理器执行所述计算机可读程序时实现如上任一所述的数据查询和/或数据存储方法中的步骤。
15.有益效果:本方案提供一种数据存储方法,目前存储以字节为单位,而本方案以字节中的位为存储单位,每一个位代表一个用户对应的活跃状态。当需要存储用户的活跃状态时,一方面,根据其账号,确定将要存储的字节和在该字节内的位数。另一方面,根据该位数,生成理想的第一理想状态值。将理想的第一理想状态值和存储字节进行比对,若相同,则说明当前存储的活跃状态不需要修改;若不同,则根据第一理想状态值和比对结果,对当前存储的字节进行更新,以实现数据存储。在此存储基础上,本方案还提供一种查询方法,得到了字节和位数后,生成一个可供比较的数值,该第二理想状态值代表用户活跃或不活跃。然后计算第二理想状态值和真实状态值之间是否相等。若第二理想状态值代表活跃,且第二理想状态值和真实状态值相等,则说明该用户账号对应的状态为活跃;若第二理想状态值代表不活跃且比较和真实状态值相等,则说明该用户账号对应的状态为不活跃,以此类推,可得到用户账号对应的状态。
附图说明
16.图1为本发明提供的数据存储方法的流程图。
17.图2为本发明提供的数据存储方法的示例流程图。
18.图3为本发明提供的数据查询方法的示例流程图。
19.图4为本发明提供的终端设备的结构原理图。
具体实施方式
20.本发明提供一种数据存储、查询方法和相关设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
21.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
22.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这用理想化或过于正式的含义来解释。
23.如图1所示,本实施提供了一种数据存储方法,为方便说明,以常见的服务器作为执行主体进行描述,此处的服务器可替换为平板、电脑等具有数据处理功能的设备,数据存储方法包括以下步骤:s10、获取活跃状态修改指令,其中,所述活跃状态修改指令包括用户账号和所述用户账号对应的活跃状态。
24.具体地,每一个用户都有其对应的用户账号,若接收到活跃状态修改指令,说明对
某一个用户的活跃状态进行存储,则需要获取该用户的用户账号,以及需要存储的活跃状态。因此,活跃状态修改指令包括用户账号和用户账号对应的活跃状态。
25.活跃状态只有两个值,一个是活跃,一个是非活跃。为了方便后续存储和计算,本实施例中,用户账号为可计算的数值,也可为文字。本例中,以用户账号“13”,活跃状态为“活跃”为例进行说明。
26.s20、根据所述用户账号,确定对应的存储字节和字节位数。
27.具体地,存储位数是指系统中一个字节中包含的位数。一般系统中一个字节的位数为8位,不同系统中,位数不同可根据实际的存储位数进行调整。存储字节即在该存储位数基础上存储该用户账号对应的活跃状态值得字节,字节位数即在存储位数基础上存储该用户账号对应的额活跃状态值得位数。
28.为了方便查找,本例中预先设置了一个键值对(key-value),其中,key即用户账号,value是指存储的字节。本例中采用的存储位数常见的8位,因此设置的value的类型为uint8。可采用如下代码设置该键值对。
29.//type bitmap struct {data map[uint32]byte // byte = uint8存储占用一个字节}在一种实现方式中,预先将不同的用户账号与其活跃状态的存储位置进行对应,对应关系可存储于位置表中。例如用户账号“13”对应第一个字节,第2个位置,用户账号“12”对应第二个字节,第3个位置。得到用户账号后,通过位置表,即可确定用户账号对应的存储字节和字节位数。
[0030]
此方法需要预先设置存储位置,步骤较多,且容易被篡改。因此在另一种实现方式中,可采用根据用户账号和存储位数确定。本例中,用户账号为数值,针对以文字注册登录的用户,可在服务器内部为其设置可供计算的编码作为后续存储的用户账号。例如用户名为“帽子”,用户账号为“13”。其具体过程如下:a10、将所述用户账号和所述存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数。
[0031]
具体地,将用户账号作为被除数,存储位数作为除数,将用户账号和存储位数相除,可得到整数部分和余数部分。
[0032]
以用户账号“3”为例,与存储位数相除后,整数部分为0,余数部分为3。
[0033]
以用户账号“8”为例,与存储位数相除后,整数部分为1,余数部分为0。
[0034]
以用户账号“13”为例,与存储位数相除后,整数部分为1,余数部分为5。
[0035]
a20、根据所述整数部分和所述余数部分,确定所述用户账号对应的存储字节和字节位数。
[0036]
具体地,在一种确定方式中,当所述余数为自然数时,将整数部分与1之和作为用户账号对应的存储字节,且余数部分作为用户账号对应的存储字节。如前例中的“3”和“13”分别对应的存储字节为1和2,字节位数为“3”和“5”。
[0037]
当所述余数为零时,将整数部分作为用户账号对应的存储字节,且用户账号对应的字节位数与存储位数相等。如前例中的“8”,对应的存储字节为1,存储位数为8。
[0038]
在第二种确定方式中,预先设定,以零作为计数的起点,如第0字节、第一字节
……
排序,而0位标示前一个字节的最后一位。因此,根据这一设定,得到整数部分和余数部分后可直接确定存储字节和字节位数。
[0039]
此外,第三种确定方式中,如图2所示,以零作为计数起点,如第0字节、第一字节
……
排序,而字节为数也以0为起点,直接以整数部分作为存储字节,以余数作为存储位数,第0个字节位数相当于存储字节中的第一位。
[0040]
其代码可表示为:// getbit 获取位存储的值func (b bitmap) getbit(key uint32) bool {// 取到对应的值index := key / 8n := key % 8target := b.data[index]其中,key为用户账号,index为存储字节,n为字节位数。target即指与用该存储字节对应的数值。
[0041]
s30、根据所述字节位数和所述活跃状态,生成与所述用户账号对应的第一理想状态值。
[0042]
具体地,一般以字节为单位进行信息,可直接将待存储的活跃状态与当前存储的活跃状态进行比对和存储。然而以位为单位进行信息存储,服务器无法直接得到一个字节中所有位的具体信息,因此,本实施例为解决这一问题,采用一个理想值和实际值进行比对的方式。
[0043]
首先根据字节位数和活跃状态,生成一个理想值,即第一理想状态值。由于位只能存储“0”或“1”,预先将活跃状态与“0”和“1”进行绑定。例如“活跃”对应的数值为“1”,“非活跃”对应的状态为“0”。
[0044]
当所述活跃状态为活跃时,以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的用户状态数值。前例中,字节位数为5,若采用左移运算,即“1《《5”,得到的数值以位表示为“00010000”,因此与账户“13”对应的理想的用户状态数值为“00010000”。当活跃状态为非活跃时,理想的用户状态数值为零,以8位来表示则为“00000000”。上述例子采用左移运算,在实际过程中,也可以采用右移运算,右移运算中各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移),与左移运算相类似。
[0045]
此外,若设定“活跃”对应的数值为“0”,“非活跃”对应的数值为“1”,则当所述活跃状态为活跃时,第一理想状态值为零;当所述活跃状态为非活跃时,以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的用户状态数值。
[0046]
此过程代码可为下:n2pow := uint8(1 《《 n)其中,n2pow即第一理想状态值。
[0047]
s40、以所述存储字节的数值为真实状态值,对所述真实状态值和所述第一理想状态值进行位与运算,得到第一位与数值。
[0048]
具体地,将存储字节的数值作为真实状态值,相对于之前得到的第一理想状态值这一理想值,存储字节存储的即为真实的存储数值。位与运算可以实现位与位之间的比较计算,因此实现对理想值和真实值的比较。
[0049]
在位与运算中,与运算(&)是两个位都为1时,结果才为1;或运算(|)为两个位都为0时,结果才为0。第一位与数值包含“0”和“1”,第一位与数值代表了理想值与真是值的比较结果。
[0050]
以上述理想状态值为“00010000”为例,真实状态值为“11010000”,采用位与运算中的与运算,由于仅从后往前第五位的数值都是1,因此运算后的第一位与数值为“00010000”。
[0051]
若采用“活跃”对应“0”,“非活跃”对应“1”,则可以采用位于运算中的或运算计算第一位与数值。
[0052]
s50、根据所述第一位与数值和所述第一理想状态值,对所述真实状态值进行更新,得到所述活跃状态修改指令对应的状态更新值。
[0053]
具体地,比较第一位与数值与第一理想状态值是否相同。若相同,则说明在真实状态值中,该用户账号对应的字节位数的数值,代表的用户账号此时的活跃状态,因此不需要对数值进行更新。
[0054]
当所述第一位与数值与所述第一理想状态值不同时,则说明在真实状态值中,该用户账号对应的字节位数的数值,并非代表用户账号此时的活跃状态,因此需要修改。
[0055]
本例以“活跃”对应“1”为例,如图2所示,存储前的真实状态值为“11000000”,第一理想状态值为“00010000”。该用户账号对应的字节位数的数值为“0”,之前的活跃状态为“非活跃”,因此需要修改。
[0056]
当所述第一位与数值小于所述第一理想状态值时,计算所述真实状态值与所述第一理想状态值之和,得到与所述活跃状态修改指令对应的状态更新值。上例中,“11000000”与“00010000”相加,即得到“11010000”,用户账号对应的字节位数的数值即为“1”,与需要保存的活跃状态“活跃”相对应。从而实现了对真实状态值进行更新,得到与活跃状态修改指令相对应的状态更新值。
[0057]
相对地,当所述第一位与数值大于所述第一理想状态值时,以所述真实状态值为被减数,所述第一理想状态值为减数,对所述真实状态值和所述第一理想状态值进行减法运算,得到与所述活跃状态修改指令对应的状态更新值。即将用户账号对应的字节位数从“1”变成“0”。
[0058]
此过程的代码可表示为:if (target & n2pow) == n2pow {return true}return false该实施例中,数据存储以位为单位,因此相对于之前以字节为单位进行存储,在相同的存储容量的基础上,能够存储的数据更多。以一字节8位为例,相同数据的情况下,本方案仅占用了现有方案中1/8的空间。而且地图键值对的方式存储,所以不需要像数组一样设置过大的关键词(key)过大且需要连续占用空间,本方案能够灵活占用不连续空间,即存储
的字节可以不连续,可分布于不同的区域,能够极限利用储存空间。
[0059]
基于上述的数据存储方法,本发明还提供一种数据查询方法,为方便说明,以常见的服务器作为执行主体进行描述,此处的服务器可替换为平板、电脑等具有数据处理功能的设备,数据存储方法包括以下步骤:b10、获取待查询的用户账号。
[0060]
具体地,相对于需要存储用户账号对应的活跃状态,需要用户账号以及其对应的活跃状态,只是查询用户账号的话,仅需要用户账号即可。
[0061]
b20、根据预设的存储位数,确定所述用户账号对应的存储字节和字节位数。
[0062]
具体地,本实施例中,存储位数是指系统中一个字节中包含的位数。一般系统中一个字节的位数为8位,不同系统中,位数不同可根据实际的存储位数进行调整。
[0063]
为了方便查找,本例中预先设置了一个键值对(key-value),其中,key即用户账号,value是指存储的字节。本例中采用的存储位数常见的8位,因此设置的value的类型为uint8。可采用如下代码设置该键值对。
[0064]
//type bitmap struct {data map[uint32]byte // byte = uint8存储占用一个字节}在一种实现方式中,预先将不同的用户账号与其活跃状态的存储位置进行对应,对应关系可存储于位置表中。例如用户账号“13”对应第一个字节,第2个位置,用户账号“12”对应第二个字节,第3个位置。得到用户账号后,通过位置表,即可确定用户账号对应的存储字节和字节位数。
[0065]
此方法需要预先设置存储位置,步骤较多,且容易被篡改。因此在另一种实现方式中,可采用根据用户账号和存储位数确定。本例中,用户账号为数值,针对以文字注册登录的用户,可在服务器内部为其设置可供计算的编码作为后续存储的用户账号。例如用户名为“帽子”,用户账号为“13”。确定存储位数和字节位数的具体过程包括:c10、将所述用户账号和所述存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数。
[0066]
具体地,将用户账号作为被除数,存储位数作为除数,将用户账号和存储位数相除,可得到整数部分和余数部分。
[0067]
以用户账号“3”为例,与存储位数相除后,整数部分为0,余数部分为3。
[0068]
以用户账号“8”为例,与存储位数相除后,整数部分为1,余数部分为0。
[0069]
以用户账号“13”为例,与存储位数相除后,整数部分为1,余数部分为5。
[0070]
c20、根据所述整数部分和所述余数部分,确定所述用户账号对应的存储字节和字节位数。
[0071]
具体地,在一种确定方式中,当所述余数为自然数时,将整数部分与1之和作为用户账号对应的存储字节,且余数部分作为用户账号对应的存储字节。如前例中的“3”和“13”分别对应的存储字节为1和2,字节位数为“3”和“5”。
[0072]
当所述余数为零时,将整数部分作为用户账号对应的存储字节,且用户账号对应的字节位数与存储位数相等。如前例中的“8”,对应的存储字节为1,存储位数为8。
[0073]
在第二种确定方式中,预先设定,以零作为计数的起点,如第0字节、第一字节
……
排序,而0位标示前一个字节的最后一位。因此,根据这一设定,得到整数部分和余数部分后可直接确定存储字节和字节位数。
[0074]
此外,第三种确定方式中,如图2所示,以零作为计数起点,如第0字节、第一字节
……
排序,而字节为数也以0为起点,直接以整数部分作为存储字节,以余数作为存储位数,第0个字节位数相当于存储字节中的第一位。
[0075]
其代码可表示为:// getbit 获取位存储的值func (b bitmap) getbit(key uint32) bool {// 取到对应的值index := key / 8n := key % 8target := b.data[index]其中,key为用户账号,index为存储字节,n为字节位数。target即指与用该存储字节对应的数值。
[0076]
b30、根据所述存储字节和预设的理想活跃值,计算与所述用户账号对应的第二理想状态值。
[0077]
具体地,一般以字节为单位进行信息,可直接将待存储的活跃状态与当前存储的活跃状态进行比对和查询。然而以位为单位,服务器无法直接得到一个字节中所有位的具体信息,因此,本实施例为解决这一问题,采用一个理想值和实际值进行比对的方式。
[0078]
于位只能存储“0”或“1”,预先将活跃状态与“0”和“1”进行绑定。例如“活跃”对应的数值为“1”,“非活跃”对应的状态为“0”。同时,预先设定一个理想活跃值,即预想该用户账号对应的活跃状态,本实施例中,设定的理想活跃值为“1”,即“活跃”。
[0079]
根据字节位数和预设的理想活跃值,生成一个理想值,即第二理想状态值。以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的用户状态数值。前例中,字节位数为5,若采用左移运算,即“1《《5”,得到的数值以位表示为“00010000”,因此与账户“13”对应的理想的用户状态数值为“00010000”。上述例子采用左移运算,在实际过程中,也可以采用右移运算,右移运算中各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移),与左移运算相类似。
[0080]
此过程代码可为下:n2pow := uint8(1 《《 n)其中,n2pow即第二理想状态值。
[0081]
b40、以所述存储字节的数值为真实状态值,对所述真实状态值和所述第二理想状态值进行位与运算,得到第二位与数值。
[0082]
具体地,将存储字节的数值作为真实状态值,相对于之前得到的第二理想状态值这一理想值,存储字节存储的即为真实的存储数值。位与运算可以实现位与位之间的比较计算,因此实现对理想值和真实值的比较。
[0083]
在位与运算中,与运算(&)是两个位都为1时,结果才为1;或运算(|)为两个位都为
0时,结果才为0。第一位与数值包含“0”和“1”,第一位与数值代表了理想值与真实值的比较结果。
[0084]
以上述理想状态值为“00010000”为例,真实状态值为“11010000”,采用位与运算中的与运算,由于仅从后往前第五位的数值都是1,因此运算后的第一位与数值为“00010000”。
[0085]
b50、根据所述第二位与数值与所述第二理想状态值,确定所述用户账号对应的活跃状态。
[0086]
具体地,比较第二位与数值与理想状态值是否相同。若相同,则说明在真实状态值中,该用户账号对应的字节位数的数值为预先设定的理想活跃状态。若不同,则说明在真实状态值中,该用户账号对应的字节位数的数值并非预先设定的理想活跃状态。
[0087]
再由于活跃状态只有两种,因此,若设定的理想活跃状态为“活跃”,第二位与数值与第二理想状态值相等,则确定用户账号对应的活跃状态为预设的理想活跃状态,即“活跃”;若设定的理想活跃状态为“活跃”,第二位与数值与第二理想状态值不相等,则确定用户账号对应的活跃状态为非理想活跃状态,即用户账号对应的活跃状态为“非活跃”。
[0088]
本发明在上述的数据存储方案的基础上提供了一种数据的查询方法,该方法能够快速实现每一个位保存的活跃状态的数据,而且采用key-value的方式直接查询,提高查询速率。
[0089]
基于上述数据存储和查询方法,本发明还提供了一种终端设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communications interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑命令,以执行上述实施例中的方法。
[0090]
此外,上述的存储器22中的逻辑命令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。
[0091]
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序命令或模块。处理器20通过运行存储在存储器22中的软件程序、命令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
[0092]
在实现数据存储方法中,该方法包括:获取活跃状态修改指令,其中,所述活跃状态修改指令包括用户账号和所述用户账号对应的活跃状态;根据所述用户账号,确定对应的存储字节和字节位数;根据所述字节位数和所述活跃状态,生成与所述用户账号对应的第一理想状态值;以所述存储字节的数值为真实状态值,对所述真实状态值和所述第一理想状态值进行位与运算,得到第一位与数值;根据所述第一位与数值和所述第一理想状态值,对所述真实状态值进行更新,得到所述活跃状态修改指令对应的状态更新值。
[0093]
其中,所述用户账号为数字;所述根据所述用户账号,确定对应的存储字节和字节位数包括:将所述用户账号和所述存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数;将所述整数部分作为存储字节,以及将所述余数部分作为字节位数。
[0094]
其中,所述活跃状态包括活跃和非活跃;所述根据所述字节位数和所述活跃状态,生成与所述用户账号对应的第一理想状态值包括:当所述活跃状态为活跃时,以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的用户状态数值;当所述活跃状态为非活跃时,确定所述第一理想状态值为零。
[0095]
其中,所述根据所述第一位与数值和所述第一理想状态值,对所述真实状态值进行更新,得到所述活跃状态修改指令对应的状态更新值包括:当所述第一位与数值大于所述第一理想状态值时,以所述真实状态值为被减数,所述第一理想状态值为减数,对所述真实状态值和所述第一理想状态值进行减法运算,得到与所述活跃状态修改指令对应的状态更新值;当所述第一位与数值小于所述第一理想状态值时,计算所述真实状态值与所述第一理想状态值之和,得到与所述活跃状态修改指令对应的状态更新值。
[0096]
在实现数据查询方法中,该方法包括:获取待查询的用户账号;根据预设的存储位数,确定所述用户账号对应的存储字节和字节位数;根据所述存储字节和预设的理想活跃值,计算与所述用户账号对应的第二理想状态值;以所述存储字节的数值为真实状态值,对所述真实状态值和所述第二理想状态值进行位与运算,得到第二位与数值;根据所述第二位与数值与所述第二理想状态值,确定所述用户账号对应的活跃状态。
[0097]
其中,所述用户账号为数字;所述根据预设的存储位数,确定所述用户账号对应的存储字节和字节位数包括:将所述用户账号和所述存储位数相除,得到所述用户账号对应的整数部分和余数部分,其中,所述用户账号为被除数,所述存储位数为除数;将所述整数部分作为存储字节,以及将所述余数部分作为字节位数。
[0098]
其中,所述根据所述存储字节,计算与所述用户账号对应的第二理想状态值包括:以所述字节位数为移动数值,进行左移或右移运算,得到与所述用户账号对应的第二理想状态值。
[0099]
其中,所述根据所述第二位与数值与所述第二理想状态值,确定所述用户账号对应的活跃状态包括:当所述第二位与数值与所述第二理想状态值相等时,确定所述用户账号对应的活跃状态为所述理想活跃值;当所述第一位与数值与所述第二理想状态值不相等时,确定所述用户账号对应的
活跃状态为非理想活跃值。
[0100]
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态计算机可读存储介质。
[0101]
此外,上述计算机可读存储介质以及终端设备中的多条命令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
[0102]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1