一种短链接生成方法及装置与流程

文档序号:13804830阅读:311来源:国知局
一种短链接生成方法及装置与流程

本发明涉及互联网技术领域,尤其涉及一种短链接生成方法及装置。



背景技术:

互联网应用中,每种内容(如网页、图片或者文本等)都具有对应的链接地址,用户之间通过传输链接地址来分享对应的内容。对于包含字符多的链接地址而言,通过互联网传输时,具有传输流量大的问题。现有技术中,为了减少由于链接地址过长引起的传输流量大的问题,通常采用短链接技术生成与原始长链接地址对应的短链接地址,短链接地址指向原始长链接地址对应的内容,利用短链接地址代替原始长链接地址进行传输。

现有的短链接生成算法是消息摘要算法md5,即使用链接地址作为输入,输出一个6位定长的hash值字串,通过该hash值字串生成短链接地址。当用户拿着短链接进行解析时,短链接地址会根据链接存储模块中进行检索,并将原来的网址链接返还回来,进行地址重定向。

但是这种算法导致大部分生成的短链接地址是定长的,而且受md5的最多16位的进制限制,因此md5仍然会出现对应不同网址生成相同的短链接,从而使得访问者访问短链接时发生访问错误。



技术实现要素:

本发明提供一种短链接生成方法及装置,用于解决现有技术中的短链接生成方法产生的短链接存在冲突的问题。

本发明实施例提供一种短链接生成方法,包括:确定待转换的长链接;

根据所述待转换的长链接确定第一短链接;

向分布式数据库集群发送访问指令,获取短链接标识位,所述分布式数据库集群在设定时间段内生成的不同的短链接标识位的数量不大于所述设定时间段内的访问指令的数量;

根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

本发明实施例中,首先确定需要转换的长链接,并根据需要转换的长链接确定第一短链接部分,然后向分布式数据库集群发送访问指令,获取短链标识位,并根据短链标识位以及第一短链接的部分形成发送给用户的第二短链接,用户点击第二短链接即可链接到长链接,由于第二短链接是根据分布式数据库集群产生的不同的短链接,形成的第二短链接具有唯一标识性,所以在本发明实施例中,不同的长链接会产生不同的第二短链接,避免了短链接的冲突。

进一步地,所述根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接,包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

根据所述标识位基数、短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

本发明实施例中,在短链接标识位的基础上再次增加标识位基数,进一步保证了生成的第二短链接的安全性。

进一步地,所述根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接,包括:

获取短链接字典,其中所述短链接字典中的每个字符与所述短链接标识位中的每个字符存在m进制的一一对应关系;

确定所述短链接标识位中每个字符在所述短链接字典中对应的字符,形成短链接转换标识位;

根据所述短链接转换标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

本发明实施例中,确定所述短链接标识位中每个字符在所述短链接字典中对应的字符,形成短链接转换标识位,然后根据短链接转换标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接,能够有效减少第二短链接的长度,并且,由于短链接字典的对应关系可以是自定义的,也保证了第二短链接的安全性。

进一步地,述根据所述短链接转换标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接,包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

确定所述标识位基数的每个字符在所述短链接字典中对应的字符,形成标识位转换基数;

根据所述短链接转换标识位、所述第一短链接及所述标识位转换基数,生成所述待转换的长链接对应的第二短链接。

本发明实施例中,可以通过短链接字典将标识位基数进行转换,减少了标识位基数的长度,也就进一步地减少了第二短链接的长度,并且由于对标识位基数进行了转换,加大了对标识位基数的破解难度,也就更加一步提升了第二短链接的安全性。

进一步地,所述分布式数据库集群中包括q个数据库服务器,所述q个数据库服务器中的每个数据库服务器配置有各自不同的起始序列号,所述各自不同的起始序列号为[n,n+q]中的任一个;

每个数据库服务器按照q步长、各自的起始序列号以及所述访问指令的访问顺序生成所述访问指令对应的短链接标识位。

本发明实施例中,为了能够产生唯一的短链接标识位,所以获取的分布式数据库集群中的生成短链接标识位的规则是不会产生重复的短链接标识位,保证了第二短链接的唯一性。

本发明实施例还提供一种短链接生成装置,包括:

长链接确定单元,用于确定待转换的长链接;

第一短链接确定单元,用于根据所述待转换的长链接确定第一短链接;

短链接标识位确定单元,用于向分布式数据库集群发送访问指令,获取短链接标识位,所述分布式数据库集群在设定时间段内生成的不同的短链接标识位的数量不大于所述设定时间段内的访问指令的数量;

第二短链接确定单元,用于根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

本发明实施例中,首先确定需要转换的长链接,并根据需要转换的长链接确定第一短链接部分,然后向分布式数据库集群发送访问指令,获取短链标识位,并根据短链标识位以及第一短链接的部分形成发送给用户的第二短链接,用户点击第二短链接即可链接到长链接,由于第二短链接是根据分布式数据库集群产生的不同的短链接,形成的第二短链接具有唯一标识性,所以在本发明实施例中,不同的长链接会产生不同的第二短链接,避免了短链接的冲突。

进一步地,所述第二短链接确定单元具体包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

根据所述标识位基数、短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

进一步地,所述第二短链接确定单元具体包括:

获取短链接字典,其中所述短链接字典中的每个字符与所述短链接标识位中的每个字符存在m进制的一一对应关系;

确定所述短链接标识位中每个字符在所述短链接字典中对应的字符,形成短链接转换标识位;

根据所述短链接转换标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

进一步地,所述第二短链接确定单元具体包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

确定所述标识位基数的每个字符在所述短链接字典中对应的字符,形成标识位转换基数;

根据所述短链接转换标识位、所述第一短链接及所述标识位转换基数,生成所述待转换的长链接对应的第二短链接。

进一步地,所述分布式数据库集群中包括q个数据库服务器,所述q个数据库服务器中的每个数据库服务器配置有各自不同的起始序列号,所述各自不同的起始序列号为[n,n+q]中的任一个;

每个数据库服务器按照q步长、各自的起始序列号以及所述访问指令的访问顺序生成所述访问指令对应的短链接标识位。

本发明实施例还提供一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例任一所述的方法。

本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述实施例任一所述方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述实施例中任一所述方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种短链接生成方法的流程示意图;

图2为本发明实施例提供的一种分布式数据库集群的结构示意图;

图3为本发明实施例提供的一种短链接生成方法的流程示意图;

图4为本发明实施例提供的一种短链接生成装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供一种短链接生成方法,如图1所述,包括:

步骤101,确定待转换的长链接;

步骤102,根据所述待转换的长链接确定第一短链接;

步骤103,向分布式数据库集群发送访问指令,获取短链接标识位,所述分布式数据库集群在设定时间段内生成的不同的短链接标识位的数量不大于所述设定时间段内的访问指令的数量;

步骤104,根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

在本发明实施例中,当确定需要进行短链接转换时,首先获取了待转换的信息,然后将待转换的信息转换为长链接,然后根据长链接确定第一短链接,形成第一短链接的过程可以和现有技术相同,也可以和现有技术不同;在确定了第一短链接之后,向分布式数据库集群获取链接标识位,然后根据链接标识位和第一短链接确定了长链接转换后的第二短链接;由于分布式数据库集群产生的短链接标识位具有唯一性,所以形成的第二短链接与现有技术相比,减少了形成的短链接的冲突性。

可选的,在本发明实施例中,执行主体可以是一切能够进行短链接生成的软件设备或者硬件设备。

可选的,在步骤101中,长链接指的是需要用户点击的链接,可选的,链接可以是url链接。

在确定需要进行短链接转换时,需要确定需要转换的长链接,可选的,需要转换的长链接可以是短链接生成器在接收到转换指令时获取到的,也可以是在接收到转换指令时,转换指令中包括形成长链接的信息,短链接生成器根据长链接的信息形成长链接。

在步骤102中,根据确定的长链接,转换为第一短链接,可选的,在本发明实施例中,可以使用现有技术中的多种转换手段进行转换,例如,在确定了长链接后,通过md5算法对确定的长链接进行hash运算,得到长链接对应的第一短链接。

在步骤103中,向分布式数据库集群发送访问指令,能够获取访问指令对应的唯一短链接标识位。

分布式集群在设定时间段内生成的不同的短链接标识位的数量不大于所述设定时间段内的访问指令的数量,也就是说,在设定时间段内,分布式集群生成的短链接标识位不会发生冲突,保证生成的短链接标识位是唯一的。

可选的,在本发明实施例中,分布式数据库集群中包括q个数据库服务器,q个数据库服务器中的每个数据库服务器配置有各自不同的起始序列号,各自不同的起始序列号为[n,n+q]中的任一个;

每个数据库服务器按照q步长、各自的起始序列号以及访问指令的访问顺序生成访问指令对应的短链接标识位。

可选的,在本发明实施例中,数据库服务器可以是redis数据库,redis具有单线程机制,保证了在对redis进行访问时,redis能够提供唯一的短链接标识位。

例如图2所示,上述实施例中的执行主体为短链接生成器,分布式数据库集群为redis集群,其中redis集群包括4个redis数据库,每个redis数据库都是单线程机制,4个redis数据库的编号分别为redis1、redis2、redis3以及redis4;redis1~redis4之间按照步长4产生短链接标识位;例如,在本发明实施例中,redis1的起始序列号为1,redis2的起始序列号为2,redis3的起始序列号为3,redis4的起始序列号为4,当redis1数据库被第一次访问时,即redis1第一次接收到访问指令时,redis1数据库确定的短链接标识位为1,当redis1数据库第二次被访问时,即redis1第二次接收到访问指令时,redis数据确定的短链接标识位为5,这样保证了每个redis数据库在被访问时,确定的短链接表示位都是不重复的。

可选的,在本发明实施例中,短链接标识位的长度是根据短链接生成器的属性信息确定的,短链接生成器的属性信息包括每秒接收到的短链接生成请求的数量p,短链接标识位的失效时间t,以及预设的短链接标识位的进制数m;由于需要在失效时间t内产生不同的短链接标识位,且每个短链接标识位的长度为n,则可以通过下列公式确定短链接标识位的长度:

p×t≤mn

在确定了短链接标识位的长度后,向分布式数据库集群发送访问指令时携带了短链接标识位的长度,分布式数据库集群针对访问指令确定短链接标识位的长度为n。

在步骤104中,当确定了短链接标识位后,根据短链接标识位以及第一短链接确定待转换的长链接对应的第二短链接,可选的,可以将短链接标识位与第一短链接进行组合,确定第二短链接;或者将短链接标识位与第一短链接进行计算,例如相加、相减或者其它运算,确定第二短链接。

例如,在本发明实施例中,确定的短链接标识位的长度为5,向分布式数据库集群获取的短链接标识位为12321,确定的第一短链接为0ca175b9c0f726a831d895e269332461,将短链接标识位与第一短链接进行组合,得到了第二短链接为123210ca175b9c0f726a831d895e269332461。

可选的,在本发明实施例中,由于向分布式数据库集群获取的短链接标识位是根据起始序列号以及访问顺序确定的,若启示序列号以及访问顺序被获取后,不能保证短链接标识位的安全性,所以在本发明实施例中,还可以获取标识位基数,标识位基数在进制m的情况下长度为n,其中n是根据设定时间段内的访问指令的数量以及短链接标识位的进制m确定的;根据标识位基数、短链接标识位以及第一短链接生成待转换的长链接对应的第二短链接。

可选的,在本发明实施例中,可以将获取的标识位基数、短链接标识位以及第一短链接进行组合确定第二短链接,也可以为了防止第二短链接位数过多,将标识位基数与短链接标识位进行运算后,再与第一短链接进行组合,确定第二短链接。

可选的,在本发明实施例中,为了能够方便与短链接标识位进行运算,标识位基数的进制与短链接标识的进制相同,长度相同,例如,在本发明实施例中,短链接标识位为12321,进制为十进制,则标识位基数可以是任意一个五位的十进制数字,例如21001,则通过短链接标识位、标识位基数以及第一短链接生成的第二短链接可以是12321210010ca175b9c0f726a831d895e269332461。

为了减少第二短链接的长度,可以将短链接标识位以及标识位基数进行运算,例如,在本发明实施例中,可以通过求和运算,缩短第二链接的长度,求和后的短链接标识位以及标识位基数为33322,则生成的第二短链接可以是333220ca175b9c0f726a831d895e269332461。

通过增加标识位基数,有效的增加了生成的第二短链接的安全性。

可选的,在本发明实施例中,还可以通过将确定的短链接标识位进行转换来提高第二短链接的安全性,例如,在本发明实施中,获取短链接字典,其中短链接字典中的每个字符与短链接标识位中的每个字符存在m进制的一一对应关系;确定短链接标识位中每个字符在短链接字典中对应的字符,形成短链接转换标识位;根据短链接转换标识位以及第一短链接生成待转换的长链接对应的第二短链接。

也就是说,在本发明实施例中,将短链接标识位进行转换,形成短链接转换标识位,将短链接转换标识位与第一短链接进行计算或者组合,生成第二短链接。由于转换的规则是自定义的,所以有效的提高了第二短链接的安全性。

可选的,在本发明实施例中,短链接标识位中的每个字符与短链接字典都存在对应关系,例如,短链接标识位是62进制数,短链接字典就包括了62个字符,包括26个小写字母、26个大写字母以及10个阿拉伯数字;每个字符与短链接标识位中的字符存在对应关系。

可选的,在本发明实施例中,为了进一步增强第二短链接的安全性,短链接字典中的62个字符进行乱序排列,乱序排列后的短链接字典中的每个字符与短链接标识位有对应关系。

例如,在本发明实施例中,乱序排列后的短链接字典中,a与短链接标识位中的m对应,b与短链接标识位中的0对应等等,经过转换后,可以形成短链接转换标识位,然后将短链接转换标识位与第一短链接进行组合或者进行计算,确定第二短链接。

可选的,在本发明实施例中,还可以获取标识位基数,标识位基数在进制m的情况下长度为n,其中n是根据设定时间段内的访问指令的数量以及短链接标识位的进制m确定的;确定标识位基数的每个字符在短链接字典中对应的字符,形成标识位转换基数;根据短链接转换标识位、第一短链接及标识位转换基数,生成待转换的长链接对应的第二短链接。

也就是说,在本发明实施例中,获取了标识位基数后,可以将标识位基数根据短链接字典进行转换,然后再与短链接标识位进行组合或者计算,根据组合后的或者计算后的标识位与第一短链接确定第二短链接。

可选的,也可以首先在获取了标识位基数后,将标识位基数与短链接标识位首先进行组合或者计算,组合或者计算后的标识位再根据短链接字典进行转换,转换后的标识位于第一短链接形成第二短链接。

可选的,在本发明实施例中,由于在确定短链接标识位时是根据短链接生成器的属性信息确定的,在短链接标识位的失效时间t后,首先产生的短链接标识位会失效,以保证获取的短链接标识位的唯一性。

在本发明实施例中,当确定了第二短链接后,将第二短链接发送给用户,在用户点击第二短链接后,可以跳转到与第二短链接对应的长链接。

为了更好的解释本发明实施例,下面通过具体的实施场景描述本发明实施例提供的一种短链接生成方法,具体的流程如图3所示。

步骤301,接收到短链接生成指令后,获取用户属性信息,根据用户属性信息确定待转换的长链接;

步骤302,将长链接进行hash计算,hash计算后的长链接为第一短链接;

步骤303,获取预设的短链接标识位的长度n,预设的第一短链接的长度n是根据每秒接收到的短链接生成请求的数量p,短链接标识位的失效时间t,以及预设的短链接标识位的进制数m来确定的;

步骤304,向redis集群发送访问指令,访问指令中包括短链接标识位的长度n,redis集群中的redis1数据库接收到访问指令,且redis1的起始序列号为m进制的起始序列,访问顺序为1,redis1确定短链接标识位为a;

步骤305,获取同样m进制的标识位基数b,标识位基数b的长度为n;

步骤306,将a与b进行相加,得到c;

步骤307,获取短链接字典,短链接字典中的每个字符都与c中的每个字符有一一对应关系,根据短链接字典将c进行转换,得到d;

步骤308,将确定的d与第一短链接进行组合,确定第二短链接。

在上述实施例中,步骤304与步骤305之间的顺序可以调换。

基于同样的构思,本发明实施例还提供一种短链接生成装置,如图4所示,包括:

长链接确定单元401,用于确定待转换的长链接;

第一短链接确定单元402,用于根据所述待转换的长链接确定第一短链接;

短链接标识位确定单元403,用于向分布式数据库集群发送访问指令,获取短链接标识位,所述分布式数据库集群在设定时间段内生成的不同的短链接标识位的数量不大于所述设定时间段内的访问指令的数量;

第二短链接确定单元404,用于根据所述短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

进一步地,所述第二短链接确定单元404具体包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

根据所述标识位基数、短链接标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

进一步地,所述第二短链接确定单元404具体包括:

获取短链接字典,其中所述短链接字典中的每个字符与所述短链接标识位中的每个字符存在m进制的一一对应关系;

确定所述短链接标识位中每个字符在所述短链接字典中对应的字符,形成短链接转换标识位;

根据所述短链接转换标识位以及所述第一短链接生成所述待转换的长链接对应的第二短链接。

进一步地,所述第二短链接确定单元404具体包括:

获取标识位基数,所述标识位基数在进制m的情况下长度为n,其中n是根据所述设定时间段内的访问指令的数量以及所述短链接标识位的进制m确定的;

确定所述标识位基数的每个字符在所述短链接字典中对应的字符,形成标识位转换基数;

根据所述短链接转换标识位、所述第一短链接及所述标识位转换基数,生成所述待转换的长链接对应的第二短链接。

进一步地,所述分布式数据库集群中包括q个数据库服务器,所述q个数据库服务器中的每个数据库服务器配置有各自不同的起始序列号,所述各自不同的起始序列号为[n,n+q]中的任一个;

每个数据库服务器按照q步长、各自的起始序列号以及所述访问指令的访问顺序生成所述访问指令对应的短链接标识位。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1