CN116796099A - 短链接的生成方法、装置、电子设备以及存储介质 - Google Patents
短链接的生成方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN116796099A CN116796099A CN202210262256.4A CN202210262256A CN116796099A CN 116796099 A CN116796099 A CN 116796099A CN 202210262256 A CN202210262256 A CN 202210262256A CN 116796099 A CN116796099 A CN 116796099A
- Authority
- CN
- China
- Prior art keywords
- link
- short
- short link
- long
- input
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000006243 chemical reaction Methods 0.000 claims description 58
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 17
- 238000013507 mapping Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施例揭示了短链接的生成方法、装置、电子设备以及存储介质,本发明实施例可应用于各种场景,包括云技术、人工智能、智慧交通、辅助驾驶等。本申请提供的短链接生成方法:一种短链接的生成方法,包括:接收短链接生成请求,短链接生成请求中包括待录入长链接;若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接,其中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键;将待录入长链接和对应的短链接存储于第一数据表。本申请实施例能够避免同一长链接对应两个或两个以上不同的短链接的冲突情况。
Description
技术领域
本申请涉及信息提示技术领域,具体而言,涉及短链接的生成方法、装置、电子设备以及存储介质。
背景技术
短链接是一种将长的链接通过程序计算的方式转换为精简链接的特有字符串,通过将长链接转换为短链接的方式,可以使链接在存储以及传输过程中节省字符数,并隐藏敏感请求参数。通过短链接用户可以获得与短链接相对应的长链接,并正确跳转至长链接对应的资源中。在一些需要加入链接的互动、通知、营销场景下,通常会对文本字符串的长度进行限制,此时将长链接转换为短链接就可以起到关键性作用。当前生成短链接的方式通常会出现同一个长连接对应多个不同的短链接的冲突现象,从而使得访问者访问短链接时发生访问错误。
发明内容
为解决上述技术问题,本申请的实施例提供了一种短链接的生成方法、短链接的生成装置、电子设备以及计算机可读存储介质,能够避免同一长链接对应多个不同的短链接的冲突情况。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种短链接的生成方法,包括:接收短链接生成请求,短链接生成请求中包括待录入长链接;若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接,其中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键;将待录入长链接和对应的短链接存储于第一数据表。
根据本申请实施例的一个方面,提供了一种短链接的生成装置,包括:第一接收模块,用于接收短链接生成请求,短链接生成请求中包括待录入长链接;短链接生成模块,用于若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接,其中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键;第一存储模块,用于将待录入长链接和对应的短链接存储于第一数据表。
根据本申请实施例的一个方面,本实施例提供的短链接的生成装置还包括第二存储模块,其中第二存储模块用于通过键值对存储方式将待录入长链接和待录入长链接对应的短链接存储于第二数据表,且将待录入长链接对应的短链接作为主键。
根据本申请实施例的一个方面,本实施例提供的短链接的生成装置还包括第二接收模块和重定向模块,其中,接收模块用于接收短链接转换请求,短链接转换请求包括待转换短链接;重定向模块用于若查询到待转换短链接为第二数据表包含的主键,则基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接。
根据本申请实施例的一个方面,第二存储模块包括获取单元和存储单元,其中,获取单元用于获取待录入长链接的MD5值;存储单元用于将MD5值存储于第二数据表。
根据本申请实施例的一个方面,短链接生成模块包括计算单元和换算单元,其中,计算单元用于对待录入长链接进行哈希计算,得到待录入长链接对应的哈希值;换算单元用于将哈希值换算成十六进制的字符,将字符作为待录入长链接对应的短链接。
根据本申请实施例的一个方面,本实施例提供的短链接的生成装置还包括累计模块和发送模块,其中,累计模块用于基于接收到的短链接转换请求将待转换短链接在预设时间段内的累计请求转换次数加一;发送模块用于若得到的累计请求转换次数超过预设阈值,则将待转换短链接作为异常请求短链接,发送异常请求信息至管理平台,异常请求信息包括异常请求短链接。
根据本申请实施例的一个方面,提供了一种电子设备,包括处理器及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现如上短链接的生成方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行如前提供的短链接的生成方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的短链接的生成方法。
在本申请的实施例所提供的技术方案中,通过将长链接与对应短链接的映射关系存储于第一数据表,并将长链接作为数据表中的主键,基于主键能够快速判断第一数据表中是否存储有待录入长链接对应的短链接,从而在短链接生成之前就可以避免同一长链接对应两个或两个以上不同的短链接的冲突情况,从而避免访问者访问短链接时发生访问错误。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是根据一个示例性实施例示出的本发明所涉及的实施环境的示意图;
图2是本申请的一示例性实施例示出的短链接的生成方法的流程图;
图3是本申请一示例性实施例示出的短链接的生成方法的流程图;
图4是本申请一示例性实施例示出的第一数据表的结构示意图;
图5是本申请一示例性实施例示出的第一数据表中SSD文件的结构示意图;
图6是图2所示实施例中的步骤S103在一示例性实施例的流程图;
图7是图2所示实施例中的步骤S102在一示例性实施例的流程图;
图8是图2所示实施例中的步骤S102在一示例性实施例的流程图;
图9是图2所示实施例中的步骤S103在一示例性实施例的流程;
图10是本申请一示例性实施例示出的第二数据表中SSD文件的结构示意图;
图11是本申请一示例性实施例示出的短链接的生成方法的示意图;
图12是在图2所示实施例中的基础上提出的短链接的生成方法的流程图;
图13是在图2所示实施例中的基础上提出的短链接的生成方法的流程图;
图14是在图2所示实施例中的基础上提出的短链接的生成方法的流程图;
图15是本申请一示例性实施例示出的短链接的生成装置的框图;
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是根据一个示例性实施例示出的本发明所涉及的实施环境的示意图。本发明所涉及的实施环境可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。如图1所示,本发明所涉及的实施环境至少包括用户所使用的终端110以及服务器130。终端110和服务器130之间通过互联网实现数据交互。
终端110可以是智能手机、平板电脑、PC(Personal Computer,个人计算机)、智能语音交互设备、智能家电、车載终端或者其它任意能够运行应用程序的电子设备,本处不进行限制。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,在此也不进行限制。
例如,终端110用于发送短链接生成请求至服务器130,服务器130用于若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接,其中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键;将待录入长链接和对应的短链接存储于第一数据表。
短链接是指将长的统一资源定位符(Uniform Resource Locator,URL)网址,通过程序计算等方式,转换为简短的网址字符串,从而达到节省字符数的目的。现有的短链接生成方法是将原始长链接作为输入,通过哈希算法生成与原始长链接对应的短链接。当用户拿着短链接进行解析时,短链接会根据链接存储单元进行检索,并将原来的网址链接返还回来,进行地址重定向。
但本申请发明人经过长期研究发现,虽然通过现有技术能够生成与原始长链接对应的短链接,然而现有短链接生成方法如果同一长链接多次请求生成短链接业务,都无可避免地会出现每次生成的短链接都不同的现象,进而导致同一个长链接对应多个不同的短链接,造成短链接冲突,从而使得访问者访问短链接时发生访问错误。
为解决现有技术中至少存在的如上问题,本申请的实施例分别提出一种短链接的生成方法、短链接的生成装置、电子设备以及计算机可读存储介质以下将针对这些实施例进行详细描述。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
请参阅图2,图2是本申请的一示例性实施例示出的短链接的生成方法的流程图,如图2所示,本实施例提供的短链接的生成方法包括步骤S101-步骤S103,详细描述参考如下:
步骤S101:接收短链接生成请求。
在本实施例中,短链接生成请求中包括待录入长链接,接收的短链接生成请求用于请求生成待录入长链接对应的短链接。
步骤S102:若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接。
在本实施例中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键。
在本实施例中,数据以键值对存储方式存储于数据表就可以根据一个键值获得对应的一个值。例如,一般的面向对象编辑中,经常会使用Form.Enable=True或False,其中,Form.Enable就是数据表中的一个主键(或称为键值),True或False即是数据表中与Form.Enable对应的值(或称为非主键),可以通过主键Form.Enable在相应数据表中获取Form.Enable对应的值,即True或False。
本实施例通过键值对存储方式将已录入的长链接和对应的短链接存储于第一数据表,表示第一数据表用于存储从已录入的长链接到对应短链接的映射关系,因此,可以将已录入的长链接作为主键,获取与已录入的长链接对应的短链接。
事实上,在现有技术中,短链系统(或者短链服务器)通常将长链接与对应短链接的映射关系存储于一张数据表中,并且为了实现将短链接转换为短链接的转换请求,将长链接对应的短链接设置为数据表中的主键,将长链接对应的短链接设置为数据表中的主键,这种存储方式存在很多弊端,例如将长链接与对应短链接的映射关系存储与一张数据表在短链接生成业务中,并且将长链接对应的短链接设置为数据表中的主键,根本无法处理同一长链接对应两个或两个以上不同的短链接的冲突情况,因为无法从主键为短链接的该数据表中是否包括存储有该待录入长链接。
在本实施例中,若查询待录入长链接并非第一数据表包含的主键,表明待录入长链接不是已录入的长链接,既然是没有被录入到短链系统的长链接,则不会出现同一个长链接对应两个不同的短链接的情况。
在上述情况下,直接响应短链接生成请求生成与待录入长链接对应的短链接,得到的短链接直接将待录入长链接和对应的短链接存储至短链系统即可。
步骤S103:将待录入长链接和对应的短链接存储于第一数据表。
在本实施例中,第一数据表用于存储待录入长链接到对应的短链接的映射关系,也即将待录入长链接作为主键,将待录入长链接和对应的短链接作为值存储于第一数据表。
示例性地,若查询到所述待录入长链接为所述第一数据表包含的主键,返回表征请求失败的反馈信息至请求方,所述反馈信息包括所述待录入长链接对应的短链接,在本实施例中,若查询到所述待录入长链接为所述第一数据表包含的主键,表明短链系统已经生成并存储有待录入长链接对应的短链接,为避免同一长链接生成多个不同的短链接,本实施例返回表征请求失败的反馈信息至请求方并结束短链接生成程序。
参阅图3,图3是本申请一示例性实施例示出的短链接的生成方法的流程图,如图3所示,本实施例提供的短链接的生成方法包步骤S901至步骤S907,详细描述如下:
S901:开始。
在本实施例中,在获取到待录入短链接之后,启动开始生成待录入长链接对应的短链接的开始路程。
S902:计算待录入长链接对应的MD5值。
S903:查询第一数据表。
其中,第一数据表包括多个已经录入的长链接对应的MD5值以及每个已经录入的长链接对应的短链接。其中,已经录入的长链接对应的MD5值作为主键,已经录入的长链接对应的短链接作为键值存储于第一数据表。
S904:判断第一数据表是否存在待录入长链接对应的MD5值,若判断为是则跳转至步骤S907,若判断为否则跳转至步骤S905。
S905:生待录入长链接对应的短链接。
S906:将待录入长链接对应的MD5值作为主键,待录入长链接对应的短链接作为键值存储于第一数据表。
S907:结束短链接生成流程。
本申请发明人发现,早期是使用全内存方式存储短链接与长链接的映射关系,例如使用定长hashtable(哈希表)存储短链接与长链接的映射关系,这种方式因没有持久化存储,在机器故障时只能通过切片加binlog流水方式做数据恢复,扩容和死机恢复都比较复杂,运维和机器成本都较高。
例如,使用CMEM(Cloud Memory)存储短链接与长链接的映射关系,CMEM是腾讯提供的高性能内存级持久化存储服务,适用于数据量小、访问量高、key-value存储的场景。CMEM基于一个存储键值对的hashmap,数据使用内存存储,并保证数据的持久性。经过分析后发现,这种方式尽管可以解决数据安全和运维复杂的问题,但机器成本比起之前的存方式更高,因为cmem有自己的数据,整体内存利用率较低,且数据膨胀较快,机器消耗将越来越多。
基于此,本实施例利用cache+ssd文件的存储方式存储长链接到短链接的映射关系。参阅图4,图4是本申请一示例性实施例示出的第一数据表的结构示意图,如图4所示,第一数据表存储由cache和SSD文件构成,所有的写进程都只写入cache中,且每个记录都会带上时间戳。写进程不直接与ssd交互,因此不存在ssd随机写的问题,耗时也非常小。
整理工具用于检测cache的容量,当cache的容量达到某个设定值后启动整理,把cache和SSD中的数据进行合并,合并完成后,根据整理的时间戳把cache中在这时间戳之前的数据淘汰,通常是一周才做一次整理,通过这种方式可以解决SSD文件的写入次数限制。
当读进程到来时,读进程首先会查询cache中数据,如果不存在才会到SSD文件中查询,优化后的SSD文件只需读取一次即可,整体的查询耗时很短,平均值基本在1~2ms内。
每台机器写进程的个数会根据SSD文件的个数确定,一个SSD文件会启动一个写进程,因读进程有输入输出操作,一般一个SSD文件会启动多个对应的读进程。
在写进程把数据写入cache后,同时会转一份到同步进程,同步进程会根据配置的备份机器信息,通过同步协议把数据同步到其它的机器上。
接口机主要用于路由,根据请求的主键计算出所在unit,然后把请求路由到unit所在的机器进程,请求的主键例如长链接。
示例性地,参阅图5,图5是本申请一示例性实施例示出的第一数据表中SSD文件的结构示意图,第一数据表包括的数据被分成4096个unit,每个unit对应一个文件,文件格式如图5所示,文件结构分为索引区和数据区,索引区分为一级索引区和二级索引区,数据区和二级索引区逻辑上由8k的block组成,而一级索引区由一个64k的block组成。
在本实施例中,把16B的长链接转成2个64位的整形,按升序排序,每个block能容纳340条记录,每个记录包括长链接以及长链接对应的短链接,大小为24B。二级索引区是对数据区建立的索引,把每个block最后一条记录的主键建立成二级索引,同理,一级索引区是由二级索引每个block最后一个主键建立的。
查找时首先对一级索引区做二分查找,找到所在的二级索引区,然后再对二级索引区做二分查找,找到对应数据block,最后对数据block做二分查找,即可定位出要查找的记录。
因一级索引区和二级索引区都非常小,为了减少输入输出的次数,每次文件整理完成后,索引都会被加载到内存,因此,一次查找过程实际上只需要一次的输入输出即可。
本实施例提供的短链接的生成方法,通过将长链接与对应短链接的映射关系存储于第一数据表,并将长链接作为数据表中的主键,基于主键能够快速判断第一数据表中是否存储有待录入长链接对应的短链接,从而在短链接生成之前就可以避免同一长链接对应两个或两个以上不同的短链接的冲突情况,从而避免访问者访问短链接时发生访问错误。
示例性地,参阅图6,图6是图2所示实施例中的步骤S103在一示例性实施例的流程图,如图6所示,步骤S103包括步骤S201-步骤S202,详细描述参考如下:
步骤S201:获取待录入长链接的MD5值。
在本实施例中,基于MD5信息摘要算法(MD5 Message-Digest Algorithm)获取待录入长链接的MD5值,MD5信息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),与其他信息摘要算法相比,MD5信息摘要算法的安全性更佳且获取的MD5值相对于待录入长链接更短。
步骤S202:将MD5值存储于第一数据表。
在本实施例中,将待录入长链接对应的MD5值作为主键存储于第一数据表。在接收到短链接生成请求之后,获取待录入长链接对应的MD5值,并查询录入长链接对应的MD5值是否为第一数据表包含的主键,若录入长链接对应的MD5值不是为第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接。
本实施例利用长链接对应的MD5值代替长链接存储于第一数据表,由于长链接对应的MD5值长度远小于长链接,因此,能够进一步节省第一数据表的存储空间,且将经过加密处理的长链接的MD5值存储于第一数据表,能够提高数据存储的安全性,避免长链接泄露。
示例性地,参阅图7,图7是图2所示实施例中的步骤S102在一示例性实施例的流程图,如图7所示,步骤S102包括步骤S301-步骤S302,详细描述参考如下:
步骤S301:对待录入长链接进行哈希计算,得到待录入长链接对应的哈希值。
哈希计算也称为Hash计算,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值或者哈希值。这种转换是一种压缩映射,也就是说散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
示例性地,通过MurmurHash算法对待录入长链接进行哈希计算,进而得到待录入长链接对应的哈希值。
MurmurHash算法是一种非加密型哈希函数,与其它流行的哈希函数相比,处理速度更快,另外,对于规律性较强的主键,MurmurHash算法的随机分布特征表现更良好。
MurmurHash算法通常可以输出两种长度的哈希值,即32bit和128bit,示例性地,为了让生成的短链接尽可能地短,本实施例可以选择输出32bit的哈希值。例如对一个待录入长链接做MurmurHash计算,输出长度为32bit的哈希值3002604296。
步骤S302:将哈希值换算成十六进制的字符,将字符作为待录入长链接对应的短链接。
在本实施例中,步骤S301得到的待录入长链接对应的哈希值为十进制形式,将形式为十进制的哈希值换算成十六进制的字符,可以大幅缩短哈希值的长度,以满足短链接的需求,能够进一步提高用户体验。
在一个示例性实施例中,参阅图8,图8是图2所示实施例中的步骤S102在一示例性实施例的流程图,如图8所示,步骤S102包括步骤S401-步骤S407,详细描述如下:
步骤S401:生成种子。
在本实施例中,将生成的种子值作为MurmurHash算法的参数值。示例性地,随机生成MurmurHash算法的种子值,需要说明的是,本实施例还可以通过其他方式生成种子,在此不做具体限定。
步骤S402:根据待录入长链接和种子利用MurmurHash算法得到待录入长链接对应的哈希值。
本实施例将种子带入MurmurHash算法中,将待录入长链接输入至带有种子参数的MurmurHash算法模型,即可输出待录入长链接对应的哈希值。
示例性地,若待录入长链接如下:
https://test.ves.qq.com/match_detail_signup/index.html?tournamentId=1008,
基于带有种子参数的MurmurHash算法模型,即可输出待录入长链接对应的哈希值。
若待录入长链接如下:
https://test.ves.qq.com/match_detail_signup/index.html?tournamentId=1008,则得到的哈希值为2340220928。
步骤S403:将十进制的哈希值转换为十六进制的字符,得到待录入长链接对应的短链接。
示例性地,将哈希值2340220928转换成十六进制,即可得到待录入长链接对应的短链接8b7cf000,因此本实施例最终生成的短链接为c.ves.qq.com/8b7cf000。
步骤S404:确认生成的短链接是否有冲突。
本实施例将生成的短链接与第一数据表进行匹配,若查询到第一数据表中存在与生成的短链接相同的短链接,则确定生成的短链接是否有冲突。示例性地,若生成的短链接为c.ves.qq.com/8b7cf000,则在第一数据表中包括短链接c.ves.qq.com/8b7cf000时,确定有冲突。
步骤S405:如果没有冲突,则存储待录入长链接和对应的短链接的映射关系至第一数据表。
步骤S406:如果有冲突,则在待录入长链接后面添加“vesports”,生成新的待录入长链接。
步骤S407:为新的待录入长链接生成对应的短链接。
本申请发明人发现,虽然通过现有技术能够生成与原始长链接对应的短链接,然而,通过哈希算法自动生成短链接的方式受哈希算法的最多16位的进制限制,可能会出现对应不同长链接生成相同的短链接,造成短链接冲突,从而也可能使得访问者访问短链接时发生访问错误。
示例性地,参阅图9,图9是图2所示实施例中的步骤S103在一示例性实施例的流程图,如图9所示,步骤S103包括步骤S501-步骤S502,详细描述如下:
步骤S501:查询第一数据表是否包括与待录入长链接对应的短链接相同的目标短链接。
在本实施例中,在生成待录入长链接对应的短链接之后,查询第一数据表是否包括与待录入长链接对应的短链接相同的目标短链接,若存在,表明待录入长链接和第一数据表中的目标短链接对应的长链接生成了相同的短链接,发生短链接生成冲突,若此时还将待录入长链接对应的短链接和待录入长链接写入第一数据表,肯定会使得访问者访问短链接时发生访问错误,具体为,在访问者访问待录入长链接对应的短链接(或者目标短链接)时,重定向至待录入长链接或者目标长链接,而待录入长链接和目标长链接是不同的网络地址。
步骤S502:若存在,在待录入长链接后面添加预设字符串,得到新的待录入长链接,为新的待录入长链接生成对应的短链接。
在本实施例中,若查询第一数据表是否包括与待录入长链接对应的短链接相同的目标短链接以在待录入长链接后面添加预设字符串,重新执行步骤S101-步骤S103,为新的待录入长链接生成对应的短链接。
本实施例在查询第一数据表是否包括与待录入长链接对应的短链接相同的目标短链接时,通过改变待录入长链接进而再次触发短链接生成请求以生成新的短链接,进而避免短链接生成冲突。
示例性地,若查询第一数据表是否包括与待录入长链接对应的短链接相同的目标短链接,在待录入长链接后面添加“vesports”以生成新的待录入长链接。例如,待录入长链接如下:
https://test.ves.qq.com/match_detail_signup/index.html?tournamentId=1008,
则生成的新的待录入长链接如下:
https://test.ves.qq.com/match_detail_signup/index.html?tournamentId=1008vesports。
本申请发明人经过长期研究发现,目前,短链系统将长链接与对应短链接的映射关系存储于一张数据表,则短链生成业务和短链转换业务都基于这一张数据表,由于当前短链转换业务并发量极高,因此可能会造成短链生成请求延时过长,短链生成效率低下。
为解决上述问题,本实施例通过键值对存储方式将待录入长链接和待录入长链接对应的短链接存储于第二数据表,且将待录入长链接对应的短链接作为主键。
在本实施例中,另外构建第二数据表并用于存储待录入长链接到对应短链接的映射关系,其中,待录入长链接作为第二数据表中的主键,第二数据表可以用于处理多种业务,例如短链接转换业务等,在此不做具体限定。
本实施例另外构建第二数据表用于存储短链接到对应长链接的映射关系,其中,端链接作为第二数据表中的主键,并将该第二数据表用于处理短链接转换业务,也即,第一数据表用于处理短链接生成业务,另外构建第二数据表用于处理短链接转换业务,能够解决当前短链转换业务并发量高可能造成的短链生成请求延时过长,短链生成效率低下的问题。
同理,本实施例利用cache+ssd文件的存储方式存储短链接到长链接的映射关系。第二数据表存储的数据是短链接到长链接的映射,在本实施例中,第二数据表复用第一数据表的程序,只做了部分的代码修改。
示例性地,参阅图10,图10是本申请一示例性实施例示出的第二数据表中SSD文件的结构示意图,如图10所示,第二数据表由文件头、索引、数据三部分组成,其中,文件头记录unit的属性信息,索引是一个有1500w个元素的数组,数组下标是该unit内短链接的偏移量,数组的值为该短链接的内容在文件的偏移量。
对于一次查询过程,首先计算出索引的位置,读取索引的值,然后根据偏移量读取主键对应的值,因索引量较大,并未加载到内存中,一次查询需要两次文件输入输出,SSD文件读取非常快,查询的耗时基本上在1~2ms内。
示例性地,将MD5值存储于第二数据表。本实施例利用长链接对应的MD5值代替长链接存储于第二数据表,由于长链接对应的MD5值长度远小于长链接,因此,能够进一步节省第二数据表的存储空间,且将经过加密处理的长链接的MD5值存储于第二数据表,能够提高数据存储的安全性,避免长链接泄露。
参阅图11,图11是本申请一示例性实施例示出的短链接的生成方法的示意图,如图11所示,在计算得到待录入长链接对应的MD5值,且生成待录入长链接对应的短链接之后,将MD5值作为主键、待录入长链接对应的短链接作为键值存储于第一数据表,将待录入长链接对应的短链接作为主键,将待录入长链接对应的MD5值作为键值存储于第二数据表,其中,第二数据表用于处理短链接转换业务,也即,第一数据表用于处理短链接生成业务,第二数据表用于处理短链接转换业务,能够解决当前短链转换业务并发量高可能造成的短链生成请求延时过长,短链生成效率低下的问题。
参阅图12,图12是在图2所示实施例中的基础上提出的短链接的生成方法的流程图,如图12所示,在步骤S103之后,本实施例提供的短链接的生成方法还包括步骤S601-步骤S602,详细描述如下:
步骤S601:接收短链接转换请求,短链接转换请求包括待转换短链接。
在本实施例中,短链接转换请求是由客户端设备发送的,客户端设备可以是智能手机、平板电脑、PC(Personal Computer,个人计算机)、智能语音交互设备、智能家电、车載终端或者其它任意能够运行应用程序的电子设备,本处不进行限制。
示例性地,为客户端设备推送包含待转换短链接的推送信息,当用户点击该待转换短链接即可触发短链接转换请求,其中,推送信息可以包括多个变量,例如用户名、日期等等,在此不做具体限定。在响应短链接转换请求即在获取待转换短链接对应的长链接时,将每个变量对应的值带入长链接,即可重定向至长链接对应的页面。
示例性地,为客户端设备包含的应用程序推送包含待转换短链接的推送信息,例如,客户端设备包含游戏类应用程序,在用户结束游戏之后推送用于查看用户比赛排名的推送信息,推送信息标题为“晋级啦”,推送信息的内容为“恭喜晋级啦,点击{url}查看{name}比赛排名”,其中url为待转换短链接,name为用户名,点击短链接信息中的url即可触发短链接转换请求。
示例性地,以短信的形式为客户端设备发送推送信息,例如,推送信息的标题为“您已停机”,内容为“尊敬的客户,为保证您的正常通信,请于{date}日前及时缴费,避免因欠费停机给您带来不便,点击链接{url}即可轻松缴费。”其中,date为缴纳话费期限,url为待转换短链接。
示例性地,参阅图13,图13是在图2所示实施例中的基础上提出的短链接的生成方法的流程图,如图13所示,在步骤S101之后,本实施例提供的短链接的生成方法还包括步骤S701-步骤S702,详细描述如下:
步骤S701:基于接收到的短链接转换请求将待转换短链接在预设时间段内的累计请求转换次数加一。
在短链接转换业务实际操作中,若待转换短链接在短时间内的累计请求转换次数过多,则表示该待转换短链接可能是当前热点链接,说明该待转换短链接包含的信息可能是当前热点信息。另外若待转换短链接在短时间内的累计请求转换次数过多,还可能表示该待转换短链接正在遭受恶意点击。因此,本实施例统计待转换短链接在预设时间段内的累计请求转换次数具有重要的价值。
步骤S702:若得到的累计请求转换次数超过预设阈值,则将待转换短链接作为异常请求短链接,发送异常请求信息至管理平台。
在本实施例中,异常请求信息包括异常请求短链接。可以理解的是,预设时间段内和预设阈值可以根据实际应用场景灵活设置,在此不做具体限定。
示例性地,管理平台在收到异常请求信息之后可以快速对异常请求短链接进行异常核实,若检测发现该异常请求短链接正遭受恶意点击,通过待转换短链接进行IP地址以查询恶意点击的用户身份信息;若检测发现该异常请求短链接为当前热点链接,可以发送通知信息至服务器以加大对该待转换链接的推送,进而提高用户体验。
示例性地,统计预设时间段内累计请求转换次数最多的前N个待转换短链接,并将这N个待转换短链接发送至管理平台。当管理平台监测到有恶意点击短链接的行为时,首先对这N个待转换短链接进行核查,进而加快恶意排查速度。
步骤S602:若查询到待转换短链接为第二数据表包含的主键,则基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接。
在本实施例中,若查询到待转换短链接为第二数据表包含的主键,说明待转换短链接包括在第二数据表中,并且第二数据表还包括与该待转换短链接对应的长链接,此时,基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接。
在本实施例中,重定向至待转换短链接对应的长链接是指将待转换短链接对应的长链接发送至客户端,以使客户端跳转至长链接对应的页面。
在本实施例中,若第二数据表主键对应的值为待录入长链接对应的MD5值,在接收到短链接转换请求之后,若查询到待转换短链接为第二数据表包含的主键,则基于主键从第二数据表获取待转换短链接对应的MD5值,并将MD5值转换为长链接,重定向至长链接。
在一个具体应用场景中,接收游戏客户端发送的短链接转换请求,其中,短链接转换请求包括与游戏相关的待转换短链接,若查询到待转换短链接为第二数据表包含的主键,则基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接,其中,与游戏相关的待转换短链接为在玩家登录游戏应用程序的过程中用于实现与游戏相关的功能的链接,例如,在玩家结束游戏之后推送用于查看玩家比赛排名的推送信息至游戏应用程序的界面,推送信息标题为“晋级啦”,推送信息的内容为“恭喜晋级啦,点击{url}查看{name}比赛排名”,其中url为待转换短链接,name为用户名,玩家点击短链接信息中的url之后,发送短链接转换请求至服务器,服务器基于短链接转换请求查询第二数据表,若待转换短链接为第二数据表中包含的一个主键,则基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接,通过这种方式,能够便于玩家在对局之后查看比赛排名,提高用户体验。
示例性地,在基于主键获取待转换短链接对应的长链接后,对长链接进行安全性判断,如果判断为正常链接则通过302重定向到长链接对应的页面,如果判断为危险链接,则重定向到安全中心的举报页面,提醒用户链接有风险。
示例性地,为解决待转换短链接与待转换短链接对应的长链接的域名不匹配,导致待转换短链接需要进行多次跳转,造成转换效率低的问题,例如分享到A系统的属于B系统的短链接http://t.cn/abcdefg,在A系统录入后生成http://url.cn/123456,当用户点击时该短链接时,服务器会先跳转到B系统的短链接服务器,得到转换授权后,然后才跳转到目标页面,需要多次跳转。为解决这个问题,在录入或查询时对长链接的域名与待转换短链接进行匹配,把得到的与待转换短链接域名匹配的目标长链接保存至第二数据表,后续在对待转换短链接进行转换时,直接返回目标长链接,通过这种方式,可以提高待转换短链接的转换效率。
参阅图14,图14是在图2所示实施例中的基础上提出的短链接的生成方法的流程图,如图14所示,在步骤S103之后,本实施例提供的短链接的生成方法还包括步骤S1100-步骤S1500,详细描述如下:
步骤S1100:接收短链接转换请求。
步骤S1200:若查询到待转换短链接为第二数据表包括的主键,则基于主键获取待转换短链接对应的长链接。
步骤S1300:对长链接进行安全检测。
步骤S1400:若检测到长链接为正常状态,重定向至长链接。
步骤S1500:若检测到长链接为异常状态,提示用户长链接存在风险并退出短链接转换流程。
本实施例基于第二数据表执行短链接转换业务,基于第一数据表执行短链接生成业务,能够避免短链接转换业务和短链接生成业务基于同一张数据表执行造成的短链接转换请求延时过长,短链接转换效率低下的问题。
参与图15,图15是本申请一示例性实施例示出的短链接的生成装置的框图,如图15所示,短链接的生成装置800包括第一接收模块801、短链接生成模块802以及第一存储模块803。
其中,第一接收模块801用于接收短链接生成请求,短链接生成请求中包括待录入长链接;短链接生成模块802用于若查询待录入长链接并非第一数据表包含的主键,则响应短链接生成请求生成待录入长链接对应的短链接,其中,第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将已录入的长链接作为主键;第一存储模块803用于将待录入长链接和对应的短链接存储于第一数据表。
在另一示例性实施例中,本实施例提供的短链接的生成装置800还包括第二存储模块,其中第二存储模块用于通过键值对存储方式将待录入长链接和待录入长链接对应的短链接存储于第二数据表,且将待录入长链接对应的短链接作为主键。
在另一示例性实施例中,本实施例提供的短链接的生成装置800还包括第二接收模块和重定向模块,其中,接收模块用于接收短链接转换请求,短链接转换请求包括待转换短链接;重定向模块用于若查询到待转换短链接为第二数据表包含的主键,则基于主键获取待转换短链接对应的长链接,并重定向至待转换短链接对应的长链接。
在另一示例性实施例中,第二存储模块包括获取单元和存储单元,其中,获取单元用于获取待录入长链接的MD5值;存储单元用于将MD5值存储于第二数据表。
在另一示例性实施例中,短链接生成模块802包括计算单元和换算单元,其中,计算单元用于对待录入长链接进行哈希计算,得到待录入长链接对应的哈希值;换算单元用于将哈希值换算成十六进制的字符,将字符作为待录入长链接对应的短链接。
在另一示例性实施例中,本实施例提供的短链接的生成装置800还包括累计模块和发送模块,其中,累计模块用于基于接收到的短链接转换请求将待转换短链接在预设时间段内的累计请求转换次数加一;发送模块用于若得到的累计请求转换次数超过预设阈值,则将待转换短链接作为异常请求短链接,发送异常请求信息至管理平台,异常请求信息包括异常请求短链接。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
在另一示例性实施例中,本申请提供一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前的账户充值提示方法。在本实施例中,电子设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图16示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中的信息推荐方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息***等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前实施例中任一项的短链接的生成方法。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的短链接的生成方法。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种短链接的生成方法,其特征在于,包括:
接收短链接生成请求,所述短链接生成请求中包括待录入长链接;
若查询所述待录入长链接并非第一数据表包含的主键,则响应所述短链接生成请求生成所述待录入长链接对应的短链接,其中,所述第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将所述已录入的长链接作为主键;
将所述待录入长链接和对应的短链接存储于所述第一数据表。
2.根据权利要求1所述的方法,其特征在于,在所述响应所述短链接生成请求生成所述待录入长链接对应的短链接之后,所述方法还包括:
通过键值对存储方式将所述待录入长链接和所述待录入长链接对应的短链接存储于第二数据表,且将所述待录入长链接对应的短链接作为主键。
3.根据权利要求2所述的方法,其特征在于,在所述通过键值对存储方式将所述待录入长链接和所述待录入长链接对应的短链接存储与第二数据表之后,所述方法还包括:
接收短链接转换请求,所述短链接转换请求包括待转换短链接;
若查询到所述待转换短链接为所述第二数据表包含的主键,则基于所述主键获取所述待转换短链接对应的长链接,并重定向至所述待转换短链接对应的长链接。
4.根据权利要求3所述的方法,其特征在于,在所述接收短链接转换请求之后,所述方法还包括:
基于接收到的短链接转换请求将所述待转换短链接在预设时间段内的累计请求转换次数加一;
若得到的累计请求转换次数超过预设阈值,则将所述待转换短链接作为异常请求短链接,发送异常请求信息至管理平台,所述异常请求信息包括所述异常请求短链接。
5.根据权利要求2所述的方法,其特征在于,所述通过键值对存储方式将所述待录入长链接和所述待录入长链接对应的短链接存储于第二数据表包括:
获取所述待录入长链接的MD5值;
将所述MD5值存储于所述第二数据表。
6.根据权利要求1所述的方法,其特征在于,所述响应所述短链接生成请求生成所述待录入长链接对应的短链接包括:
对所述待录入长链接进行哈希计算,得到所述待录入长链接对应的哈希值;
将所述哈希值换算成十六进制的字符,将所述字符作为所述待录入长链接对应的短链接。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若查询到所述待录入长链接为所述第一数据表包含的主键,返回表征请求失败的反馈信息至请求方,所述反馈信息包括所述待录入长链接对应的短链接。
8.一种短链接的生成装置,其特征在于,包括:
第一接收模块,用于接收短链接生成请求,所述短链接生成请求中包括待录入长链接;
短链接生成模块,用于若查询所述待录入长链接并非第一数据表包含的主键,则响应所述短链接生成请求生成所述待录入长链接对应的短链接,其中,所述第一数据表用于通过键值对存储方式存储已录入的长链接和对应的短链接,且将所述已录入的长链接作为主键;
第一存储模块,用于将所述待录入长链接和对应的短链接存储于所述第一数据表。
9.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-7中的任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210262256.4A CN116796099A (zh) | 2022-03-16 | 2022-03-16 | 短链接的生成方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210262256.4A CN116796099A (zh) | 2022-03-16 | 2022-03-16 | 短链接的生成方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116796099A true CN116796099A (zh) | 2023-09-22 |
Family
ID=88040807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210262256.4A Pending CN116796099A (zh) | 2022-03-16 | 2022-03-16 | 短链接的生成方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116796099A (zh) |
-
2022
- 2022-03-16 CN CN202210262256.4A patent/CN116796099A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501533B2 (en) | Media authentication using distributed ledger | |
US11640474B2 (en) | Method and apparatus for operating database | |
CN109522330B (zh) | 基于区块链的云平台数据处理方法、装置、设备及介质 | |
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN109189857B (zh) | 基于区块链的数据共享系统、方法和装置 | |
US12079130B2 (en) | Method and apparatus for processing data based on block chain, device and readable storage medium | |
CN109521956B (zh) | 一种基于区块链的云存储方法、装置、设备及存储介质 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
WO2022237497A1 (zh) | 一种基于区块链网络的数据存储方法及装置 | |
CN112632129A (zh) | 一种码流数据管理方法、装置及存储介质 | |
CN104219198A (zh) | 一种WebApp的防篡改方法 | |
US20230306128A1 (en) | Systems and methods for using secure, encrypted communications across distributed computer networks to provide variable resiliency when indexing blockchain states for performing blockchain operations in decentralized applications using cryptography-based digital repositories | |
CN109451069B (zh) | 基于分布式存储的网络数据文件库存储及查询方法 | |
CN112100689B (zh) | 一种可信数据处理方法、装置及设备 | |
CN113987062A (zh) | 一种数据上链存储方法、系统、装置以及存储介质 | |
CN113300875A (zh) | 回源数据校验方法、服务器、系统及存储介质 | |
WO2017096886A1 (zh) | 内容推送的方法、装置以及系统 | |
WO2023142605A1 (zh) | 一种基于区块链的数据处理方法和相关装置 | |
US20230388120A1 (en) | Client-Side Device Bloom Filter Mapping | |
CN116796099A (zh) | 短链接的生成方法、装置、电子设备以及存储介质 | |
CN112256700B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN110781523B (zh) | 用于处理信息的方法和装置 | |
CN110705935B (zh) | 一种物流单据的处理方法和装置 | |
CN113709059A (zh) | 一种链路流量录制方法及节点 | |
CN115695587A (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 |