CN113420238A - 短链接生成方法、装置、电子装置和存储介质 - Google Patents
短链接生成方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN113420238A CN113420238A CN202110680591.1A CN202110680591A CN113420238A CN 113420238 A CN113420238 A CN 113420238A CN 202110680591 A CN202110680591 A CN 202110680591A CN 113420238 A CN113420238 A CN 113420238A
- Authority
- CN
- China
- Prior art keywords
- short
- link
- links
- short link
- long
- 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 51
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种短链接生成方法、装置、电子装置和存储介质,其中,该短链接生成方法包括:获取初始长链接;基于所述初始长链接生成多个第一短链接;分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不同的所述第一短链接作为目标短链接。通过本申请,解决了短链接容易重复导致短链接生成速度较慢的技术问题,提高了短链接的生成速度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种短链接生成方法、装置、电子装置和存储介质。
背景技术
随着互联网技术的不断发展,通过网络链接来获取网页信息变得越来越普遍。但是由于互联网的业务和功能过于繁多,导致网络链接的字符越来越长,甚至存在超过100个字符长度的情况。过长的网络链接往往不利于标准化和规范化,也不利于用户对网络链接进行分享。为此,需要通过短链接生成技术,将常规的网络链接转化为短链接,以提高网络链接的统一性和便利性。
为了将常规的网络链接转化为短链接,现有技术都是通过编码等方法生成短链接,再判断短链接是否和已有的短链接重复。但是,由于短链接的字符较少,重复的几率较高,而重复后往往需要重新生成短链接并再次判断是否重复,导致现有技术中的短链接生成方法速度较慢。
针对相关技术中存在的短链接容易重复导致短链接生成速度较慢的技术问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种短链接生成方法、装置、电子装置和存储介质,以解决相关技术中短链接容易重复导致短链接生成速度较慢的问题。
第一个方面,在本实施例中提供了一种短链接生成方法,包括:
获取初始长链接;
基于所述初始长链接生成多个第一短链接;
分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不匹配的所述第一短链接作为目标短链接。
在其中的一些实施例中,所述基于所述初始长链接生成多个第一短链接包括:
基于所述初始长链接生成多个第一长链接;
分别基于所述第一长链接生成多个所述第一短链接。
在其中的一些实施例中,所述基于所述初始长链接生成多个第一长链接包括:
获取多个字符串,所述字符串由0-9、a-z、A-Z中的一个或多个字符组成;
分别将所述字符串添加到所述初始长链接中,得到多个所述第一长链接。
在其中的一些实施例中,所述分别基于所述第一长链接生成多个所述第一短链接包括:
分别通过哈希算法对所述第一长链接进行映射处理,得到多个所述第一短链接。
在其中的一些实施例中,所述分别将多个所述第一短链接与数据库中的历史短链接进行比对包括:
基于布隆过滤器将多个所述第一短链接与数据库中的历史短链接进行比对,判断所述第一短链接是否与所述历史短链接匹配。
在其中的一些实施例中,所述分别将多个所述第一短链接与数据库中的历史短链接进行比对之后还包括:
获取与所述第一短链接相同的历史短链接对应的已处理长链接;
判断所述初始长链接与所述已处理长链接是否相同;
若相同,则将所述第一短链接作为所述目标短链接;
若不相同,则判定所述第一短链接无效。
在其中的一些实施例中,所述将与所述历史短链接均不匹配的所述第一短链接作为目标短链接之后还包括:
将所述初始长链接以及目标短链接保存到所述数据库中。
第二个方面,在本实施例中提供了一种短链接生成装置,包括:
获取模块,用于获取初始长链接;
生成模块,用于基于所述初始长链接生成多个第一短链接;
比对模块,用于分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不匹配的所述第一短链接作为目标短链接。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的短链接生成方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的短链接生成方法。
与相关技术相比,在本实施例中提供的短链接生成方法、装置、电子装置和存储介质,获取初始长链接;基于所述初始长链接生成多个第一短链接;分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不同的所述第一短链接作为目标短链接。通过生成多个第一短链接并分别将第一短链接与数据库中的历史短链接对比以获取目标短链接,解决了短链接容易重复导致短链接生成速度较慢的技术问题,提高了短链接的生成速度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明一实施例的短链接生成方法的终端的硬件结构框图;
图2是本发明一实施例的短链接生成方法的流程示意图;
图3是本发明一实施例的基于MurmurHash算法生成第一短链接的流程示意图;
图4是本发明一实施例的短链接随机生成方法的流程示意图;
图5是本发明另一实施例的短链接生成方法的流程示意图;
图6是本发明一实施例的短链接有效性判断方法的流程示意图;
图7是本发明一实施例的短链接生成装置的机构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的短链接生成方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的短链接生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
请参阅图2,图2是本发明一实施例的短链接生成方法的流程示意图。在本实施例中,短链接生成方法包括:
S202:获取初始长链接。
示例性地,链接是指从一个网页指向一个目标的连接关系,其指向的目标可以是另一个网页,也可以是网页的不同位置,还可以是文本、图片、邮件地址、文件以及应用程序等。随着指向目标的种类、数量等不断增多,链接的文本长度也越来越长。具体的,本实施例中的初始长链接可以是没有经过处理的原始链接。
S204:基于初始长链接生成多个第一短链接。
示例性地,对初始长链接进行处理,生成多个第一短链接。具体的,可以基于短链接生成规则同时生成多个第一短链接,也可以先对初始长链接进行变换,得到多个变换后的长链接,再依次基于多个变换后的长链接生成对应的短链接。在其中一个具体实施例中,初始长链接为“http://www.baidu.com”,其对应的第一短链接可以是“qL8yG4”、“af5e6f”等。可以理解的,第一短链接可以从当前网页跳转到初始长链接所指向的目标,在文本长度更短的同时实现初始长链接的功能,更加方便管理和推广。
S206:分别将多个第一短链接与数据库中的历史短链接进行比对,并将与历史短链接均不匹配的第一短链接作为目标短链接。
示例性地,生成多个第一短链接后,依次在数据库中搜寻与第一短链接相同的历史短链接,若在数据库中没有搜寻到与第一短链接相同的历史短链接,则将该第一短链接作为最终的目标短链接。具体的,历史短链接为已经存在的短链接,数据库用于存储历史短链接。可以理解的,若数据库中没有搜寻到与第一短链接相同的历史短链接,则表明该第一短链接尚未被占用,可以作为初始长链接对应的短链接。
本实施例中提供的短链接生成方法,获取初始长链接;基于初始长链接生成多个第一短链接;分别将多个第一短链接与数据库中的历史短链接进行比对,并将与历史短链接均不同的第一短链接作为目标短链接。通过生成多个第一短链接并分别将第一短链接与数据库中的历史短链接对比以获取目标短链接,解决了短链接容易重复导致短链接生成速度较慢的技术问题,提高了短链接的生成速度。
在另一个实施例中,基于初始长链接生成多个第一短链接包括:
步骤1:基于初始长链接生成多个第一长链接;
步骤2:分别基于第一长链接生成多个第一短链接。
示例性地,对初始长链接进行变换,得到多个变换后的初始长链接,作为第一长链接,再依次基于预设的映射规则对长链接进行映射,得到多个第一短链接。具体的,对初始长链接进行变换可以是获取多个字符串添加到初始长链接中,也可以删除初始长链接中特定位置的字符,或者变换初始长链接中字符的位置,本发明对此不作限制。具体的,预设的映射规则可以将任意长度的初始长链接映射到固定长度和固定进制的第一短链接,例如哈希算法、md5算法等。
在其中一个具体实施例中,初始长链接为“https://baike.baidu.com”,依次删除第一位、第二位、第三位以及第四位的字符,得到四个经过变换的第一长链接“ttps://baike.baidu.com”、“htps://baike.baidu.com”、“htps://baike.baidu.com”以及“htts://baike.baidu.com”,再基于映射规则将第一长链接映射到6位62进制的短链接中,得到四个第一短链接“sf2eF2”、“adf84d”、“adf84d”以及“asE1D2”,其中,6位62进制的短链接是指包含0-9、a-z、A-Z中的6个字符的短链接。
本实施例对初始长链接进行变换,生成多个第一长链接,并分别基于第一长链接生成多个第一短链接,通过同一映射规则分别对不同的第一长链接进行映射可避免生成的第一短链接之间发生重合,方法简单并且计算成本极低,可实现大量短链接并存以实现短链接容量扩展,同时使得系统能够快速响应运算。
在另一个实施例中,基于初始长链接生成多个第一长链接包括:
步骤1:获取多个字符串,字符串由0-9、a-z、A-Z中的一个或多个字符组成;
步骤2:分别将字符串添加到初始长链接中,得到多个第一长链接。
示例性地,自定义多个字符串,依次将字符串添加到初始长链接中,得到多个第一长链接。具体的,字符串可以由0-9、a-z、A-Z中的一个或多个字符组成,例如“cc”、“3g9H”、“HGPe”等;字符串可以添加到初始长链接的头部、尾部或者插入中间部分。在其中一个具体实施例中,定义三个字符串“yunji”、“yyy”、“love”,将上述三个字符串添加到初始长链接“https://xueshu.baidu.com/”的头部,得到三个第一长链接“yunjihttps://xueshu.baidu.com/”、“yyyhttps://xueshu.baidu.com/”、“lovehttps://xueshu.baidu.com/”。
本实施例获取多个字符串,并将字符串分别添加到初始长链接中,得到第一长链接,计算简单,字符串容易获取且不容易发生重合,从而使得第一长链接之间也不容易发生重合。
在另一个具体实施例中,分别基于第一长链接生成多个第一短链接包括:
分别通过哈希算法对第一长链接进行映射处理,得到多个第一短链接。
示例性地,对多个第一长链接依次使用哈希算法,生成对应的第一短链接。在其中一个具体实施例中,通过MurmurHash算法生成第一短链接。可以理解的,MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。
请参阅图3,图3是本发明一实施例的基于MurmurHash算法生成第一短链接的流程示意图。具体的,获取初始长链接A以及字符串,将字符串添加到初始长链接A中得到变换后的长链接B;基于MrumruHash算法对长链接B进行映射,得到8位16进制数C;将该8位16进制数C转换为长整型数值D;将该长整型数值D对62取余数,并将D对62的商作为下一次取余数的除数,如此循环N次,得到N个余数以及最终的商E,其中,该最终商E小于62;基于62进制数获取字符串F,该字符串F由0-9、a-z、A-Z组成;从字符串F中的N个位置处获取N个字符,并将N个字符合并为字符串G;判断N是否等于6,若N等于6,则将该字符串G作为第一短链接,若N不等于6,则取字符串F的第E个位置的字符,拼接在字符串G的尾部,得到字符串H;判断字符串H的长度是否等于6,若字符串H的长度等于6,则将字符串H作为第一短链接,若字符串H不等于6,则计算H的哈希值,并将该哈希值对62取余数,得到I,其中,余数I小于62;取字符串F的第I个位置的字符,作为字符J;在字符串H的首部增加6减H个字符J,得到字符串K;将该字符串K作为第一短链接。
请参阅图4,图4是本发明一实施例的短链接随机生成方法的流程示意图。可选的,本实施例在生成第一短链接后,在数据库中检索该第一短链接是否已经存在,若该第一短链接不存在于数据库中,则判定该第一短链接有效;若该第一短链接已经存在于数据库中,则判定该第一短链接无效。若所有的第一短链接均为无效短链接,则获取短链接字符串M,其中短链接字符串M由0-9、a-z、A-Z组成;随机循环6次,从短链接字符串M中获取6个字符,组成字符串N,将该字符串N作为第一短链接,并再次判断该第一短链接是否有效,若该第一短链接有效,则将其作为目标短链接,若该第一短链接无效,重复上述步骤或者返回判断结果。具体的,若该第一短链接无效,可以重新获取短链接字符串M,并基于该短链接字符串M重新获取6个字符组成字符串N;也可以直接在现有的短链接字符串M中重新获取6个字符组成字符串N,或者直接调整现有的字符串N,生成新的字符串。
请参阅图5,图5是本发明另一实施例的短链接生成方法的流程示意图。具体的,获取初始长链接,基于初始长链接生成三个第一长链接,例如获取三个字符串,将三个字符串依次添加到初始长链接中,生成三个第一长链接;分别对三个第一长链接采用MurmurHash算法,生成三个第一短链接;分别判断三个第一短链接是否在数据库中已经存在,若不存在,则判定该第一短链接有效,并取第一个有效的第一短链接作为目标短链接,并将该目标短链接存储到数据库中;若三个第一短链接均已经在数据库中存在,则采用随机方式生成六位短链接,并再次判断该六位短链接是否有效,若有效则将该六位短链接作为目标短链接,并将该目标短链接存储到数据库中,若无效则返回初始长链接和判断结果,并以通知方式告知相关人员。
本实施例通过哈希算法对第一长链接进行映射,可将任意长度的第一长链接映射到固定长度的第一短链接,并且不同的第一长链接往往会映射到不同的第一短链接,降低了第一短链接之间发生重合的几率。
在另一个实施例中,分别将多个第一短链接与数据库中的历史短链接进行比对包括:
基于布隆过滤器将多个所述第一短链接与数据库中的历史短链接进行比对,判断第一短链接是否与历史短链接匹配。
示例性地,判断第一短链接是否存在于历史短链接对应的布隆过滤器中,若不存在则表明该第一短链接与历史短链接均不相同。可以理解的,布隆过滤器由一个很长的二进制向量和一系列随机映射函数组成,用于检索一个元素是否在一个集合中。
在其中一个具体实施例中,基于布隆过滤器判断第一短链接是否与历史短链接均不相同包括:
步骤1:获取二进制向量和N个哈希函数。
具体的,二进制向量的每个位置的初始值为0,用于存储映射后的历史短链接,哈希函数用于对历史短链接进行映射,得到一个二进制数据。
步骤2:将历史短链接存储到布隆过滤器中。
具体的,基于N个哈希函数对历史短链接进行映射,得到N次哈希运算后的数值,其中N个哈希函数之间并不相同,从而保证对历史短链接映射的差异化。得到N次哈希运算后的数值后,基于布隆过滤器的长度即二进制向量的长度对该数值求余数,得到N个位置。将该二进制向量中对应的N个位置的数值设为1,这样历史短链接就保存到了该布隆过滤器中。
步骤3:在布隆过滤器中对第一短链接进行检索。
具体的,基于N个哈希函数对第一短链接进行映射,得到N次哈希运算后的数值,在基于布隆过滤器的长度对该数值求余数,得到N个位置。在布隆过滤器中查询该N个位置的数值,若查询到该N个位置的数值中有一个以上的数值为0,则表明该第一短链接一定不存在于布隆过滤器中,因此,该第一短链接与数据库中的历史短链接均不相同,可以将该第一短链接作为目标短链接。可选的,本实施例还可以通过链表、树等数据结构来判断第一短链接是否和数据库中的历史短链接相同,本发明对此不再赘述。
本实施例基于布隆过滤器判断第一短链接是否与历史短链接均不相同,无需针对每个第一短链接在数据库中进行检索和匹配,只要第一短链接在布隆过滤器中对应位置的数值均为1,则表明该第一短链接可能存在于该数据库中,反之则该第一短链接一定不存在于该数据库中,去除了对不存在于数据库中的第一短链接的检索需求,大幅缩减了检索的进程,同时布隆过滤器是由二进制组成的向量,占用内存极少,数值的插入和查询方便,进一步提高了短链接生成的速度。
在另一个实施例中,分别将多个第一短链接与数据库中的历史短链接进行比对之后还包括:
步骤1:获取与第一短链接相同的历史短链接对应的已处理长链接;
步骤2:判断初始长链接与已处理长链接是否相同;
步骤3:若相同,则将第一短链接作为目标短链接;
步骤4:若不相同,则判定第一短链接无效。
示例性地,分别判断第一短链接与数据库中的历史短链接是否重复,若第一短链接均与数据库中的历史短链接重复,则获取第一短链接对应的初始长链接,以及与第一短链接相同的历史短链接对应的已处理长链接,判断初始长链接和已处理长链接是否相同。若二者相同,则表明对同一长链接做了重复处理,这种情形下将第一短链接作为目标短链接,但是无需重复保存到数据库中;若不相同,则判定第一短链接无效。可以理解的,有效的第一短链接包括:数据库中不存在相同历史短链接的第一短链接,以及数据库中存在的相同的历史短链接但是该历史短链接对应的已处理长链接和初始长链接相同。
请参阅图6,图6是本发明一实施例的短链接有效性判断方法的流程示意图,包括以下步骤:
步骤1:获取第一短链接,判断第一短链接在布隆过滤器中是否存在。:
具体的,若第一短链接在布隆过滤器中不存在,则该第一短链接在数据库中一定也不存在,若第一短链接在布隆过滤器中存在,则该第一短链接可能在数据库中存在。基于布隆过滤器,可以直接获取不在数据库中存在的第一短链接,避免对不存在于数据库中的第一短链接进行检索和匹配。因此,对于在布隆过滤器中不存在的第一短链接,直接判定该第一短链接有效;对于在布隆过滤器中存在的第一短链接,由于无法判定其在数据库中是否存在,因此需要进一步进行判断。
步骤2:判断第一短链接在Redis缓存中是否存在。
具体的,Redis是一个Key-Value存储系统,可以支持字符串、链表、集合、哈希类型等Value值的存储。本实施例中的历史短链接和已处理长链接可以以Key-Value形式存储在Redis缓存中。若第一短链接不存在于布隆过滤器中,则进一步判断该第一短链接是否在Redis缓存中。
步骤3:判断第一短链接是否在数据库中。
具体的,数据库用于存储所有的历史短链接。若检测到第一短链接也不存在于Redis缓存中,则再次在数据库中确认该第一短链接是否存在。若该第一短链接在数据库中也不存在,则判定该第一短链接有效。
可以理解的,本实施例先基于布隆过滤器判断第一短链接是否存在,再基于Redis缓存进行判断,最后才在数据库中作最后确认,而不是直接在数据库中检索第一短链接并判断该第一短连接是否和数据库中历史短链接均不相同,解决了数据库访问过程中缓存穿透的问题。具体的,缓存穿透是对数据库中不存在的数据发起大量的访问请求,从而给数据库造成访问压力,进而导致数据库崩溃。可以理解的,通过布隆过滤器可以过滤出数据库中一定不存在的第一短链接,对于数据库中可能存在的第一短链接,通过Redis缓存进一步进行筛选,过滤出数据库中一定存在的第一短链接,最后才通过数据库对第一短链接进行最后确认,避免了对数据库中不存在的第一短链接的大量访问请求。也即,当需要判断数据库中是否存在第一短链接时,先通过布隆过滤器进行判断,若布隆过滤器中可能存在,再通过Redis缓存进行判断,当Redis缓存中不存在时,最后才通过访问数据库进行确认。若数据库中不存在,则判定第一短链接有效。通过本实施例有效缓解了数据库的访问压力,也进一步提高了短链接检索和匹配的速度。
步骤4:若第一短链接在Redis缓存或者数据库中存在,判断初始长链接是否已经存在。
具体的,若第一短链接在Redis缓存或者数据库中存在,则获取Redis缓存或者数据库中已经存在的历史短链接对应的已处理长链接,并将该已处理长链接与初始长链接进行对比。若该已处理长链接与该初始长链接相同,则表明该初始长链接已经存在,并且对该初始长链接作了重复处理。因此,直接判定该第一短链接有效即可,不需要对该第一短链接以及初始长链接作重复处理。若该已处理长链接与初始长链接不相同,则表明该初始长链接不存在,对于两个不同的长链接分别生成了两个第一短链接,但是两个第一短链接发生重复,因此需要判定该第一短链接无效。
本实施例获取与第一短链接相同的历史短链接对应的已处理长链接,并进一步判断初始长链接和已处理长链接是否相同,若相同,则将该第一短链接作为目标短链接,若不相同,则判定该短链接无效。即若第一短链接与数据库中的历史短链接发生重合,不是直接认定该第一短链接无效,而是进一步判断是否对同一长链接作了重复处理,解决了因直接认定该第一短链接无效而对初始长链接再次进行重复处理的问题,避免了计算资源的浪费,进一步提高了短链接生成的速度。
在另一个实施例中,将与历史短链接均不匹配的第一短链接作为目标短链接之后还包括:
将初始长链接以及目标短链接保存到数据库中。
示例性地,通过异步方式将初始长链接和目标短链接的对应关系保存到数据库中。其中,异步方式是指将初始长链接和目标短链接的对应关系传输至数据库时不需要双方保持发送和接收同步,只需要有提示接收的信息即可,例如数据的起始位置。具体的,异步方式可以是通过rocketmq实现,数据库可以是MySQL数据库。
可选的,本实施例还可以将初始长链接和目标短链接的对应关系保存到Redis缓存中,在对第一短链接进行检索时先通过Redis缓存进行筛选,降低数据库的访问压力。
本实施例通过将初始长链接和目标短链接的对应关系保存到数据库中,方便下次访问与匹配,避免了第一短链接的重合。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种短链接生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本实施例的短链接生成装置的结构框图,如图7所示,该装置包括:
获取模块,用于获取初始长链接;
生成模块,用于基于初始长链接生成多个第一短链接;
生成模块,还用于基于初始长链接生成多个第一长链接;
分别基于第一长链接生成多个第一短链接;
生成模块,还用于获取多个字符串,所述字符串由0-9、a-z、A-Z中的一个或多个字符组成;
分别将字符串添加到初始长链接中,得到多个第一长链接;
生成模块,还用于分别通过哈希算法对第一长链接进行映射处理,得到多个第一短链接;
比对模块,用于分别将多个第一短链接与数据库中的历史短链接进行比对,并将与历史短链接均不匹配的第一短链接作为目标短链接;
比对模块,还用于基于布隆过滤器将多个所述第一短链接与数据库中的历史短链接进行比对,判断第一短链接是否与历史短链接匹配;
短链接生成装置,还包括长链接判断模块;
长链接判断模块,用于获取与第一短链接相同的历史短链接对应的已处理长链接;
判断初始长链接与已处理长链接是否相同;
若相同,则将第一短链接作为目标短链接;
若不相同,则判定第一短链接无效;
短链接生成装置,还包括存储模块;
存储模块,用于将初始长链接以及目标短链接保存到数据库中。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取初始长链接;
S2,基于初始长链接生成多个第一短链接;
S3,分别将多个第一短链接与数据库中的历史短链接进行比对,并将与历史短链接均不匹配的第一短链接作为目标短链接。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的短链接生成方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种短链接生成方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种短链接生成方法,其特征在于,包括:
获取初始长链接;
基于所述初始长链接生成多个第一短链接;
分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不匹配的所述第一短链接作为目标短链接。
2.根据权利要求1所述的短链接生成方法,其特征在于,所述基于所述初始长链接生成多个第一短链接包括:
基于所述初始长链接生成多个第一长链接;
分别基于所述第一长链接生成多个所述第一短链接。
3.根据权利要求2所述的短链接生成方法,其特征在于,所述基于所述初始长链接生成多个第一长链接包括:
获取多个字符串,所述字符串由0-9、a-z、A-Z中的一个或多个字符组成;
分别将所述字符串添加到所述初始长链接中,得到多个所述第一长链接。
4.根据权利要求2所述的短链接生成方法,其特征在于,所述分别基于所述第一长链接生成多个所述第一短链接包括:
分别通过哈希算法对所述第一长链接进行映射处理,得到多个所述第一短链接。
5.根据权利要求1所述的短链接生成方法,其特征在于,所述分别将多个所述第一短链接与数据库中的历史短链接进行比对包括:
基于布隆过滤器将多个所述第一短链接与数据库中的历史短链接进行比对,判断所述第一短链接是否与所述历史短链接匹配。
6.根据权利要求1所述的短链接生成方法,其特征在于,所述分别将多个所述第一短链接与数据库中的历史短链接进行比对之后还包括:
获取与所述第一短链接相同的历史短链接对应的已处理长链接;
判断所述初始长链接与所述已处理长链接是否相同;
若相同,则将所述第一短链接作为所述目标短链接;
若不相同,则判定所述第一短链接无效。
7.根据权利要求1所述的短链接生成方法,其特征在于,所述将与所述历史短链接均不匹配的所述第一短链接作为目标短链接之后还包括:
将所述初始长链接以及目标短链接保存到所述数据库中。
8.一种短链接生成装置,其特征在于,包括:
获取模块,用于获取初始长链接;
生成模块,用于基于所述初始长链接生成多个第一短链接;
比对模块,用于分别将多个所述第一短链接与数据库中的历史短链接进行比对,并将与所述历史短链接均不匹配的所述第一短链接作为目标短链接。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的短链接生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的短链接生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110680591.1A CN113420238A (zh) | 2021-06-18 | 2021-06-18 | 短链接生成方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110680591.1A CN113420238A (zh) | 2021-06-18 | 2021-06-18 | 短链接生成方法、装置、电子装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113420238A true CN113420238A (zh) | 2021-09-21 |
Family
ID=77789205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110680591.1A Pending CN113420238A (zh) | 2021-06-18 | 2021-06-18 | 短链接生成方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420238A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933854A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 短链接处理方法、装置及服务器 |
CN107749861A (zh) * | 2017-11-16 | 2018-03-02 | 平安科技(深圳)有限公司 | 信息推送方法、装置、终端设备及存储介质 |
CN110134889A (zh) * | 2019-04-30 | 2019-08-16 | 中国联合网络通信集团有限公司 | 短链接生成方法、装置及服务器 |
CN112380464A (zh) * | 2020-11-10 | 2021-02-19 | 中国平安人寿保险股份有限公司 | 一种短链接生成方法以及相关设备 |
US20210097106A1 (en) * | 2019-09-30 | 2021-04-01 | Citrix Systems, Inc. | Generation and use of a dynamic bloom filter |
-
2021
- 2021-06-18 CN CN202110680591.1A patent/CN113420238A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933854A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 短链接处理方法、装置及服务器 |
CN107749861A (zh) * | 2017-11-16 | 2018-03-02 | 平安科技(深圳)有限公司 | 信息推送方法、装置、终端设备及存储介质 |
CN110134889A (zh) * | 2019-04-30 | 2019-08-16 | 中国联合网络通信集团有限公司 | 短链接生成方法、装置及服务器 |
US20210097106A1 (en) * | 2019-09-30 | 2021-04-01 | Citrix Systems, Inc. | Generation and use of a dynamic bloom filter |
CN112380464A (zh) * | 2020-11-10 | 2021-02-19 | 中国平安人寿保险股份有限公司 | 一种短链接生成方法以及相关设备 |
Non-Patent Citations (1)
Title |
---|
王松奇, 北京:机械工业出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
CN107682466B (zh) | Ip地址的地域信息搜索方法及其装置 | |
CN106407201B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US8260799B2 (en) | Method and apparatus for creating pattern matching state machine and identifying pattern | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN111262876B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN111611225A (zh) | 数据存储管理方法、查询方法、装置、电子设备及介质 | |
CN106412140A (zh) | 短链接地址生成方法及系统 | |
CN111567086A (zh) | 无线通信的方法、终端设备和网络设备 | |
CN112035763A (zh) | 信息处理的方法、装置及系统,电子设备及存储介质 | |
CN113535226B (zh) | 应用下载方法、终端、服务器、计算机设备以及存储介质 | |
US20220004524A1 (en) | Chunking method and apparatus | |
CN111026985A (zh) | 一种短链接生成方法、装置和服务器 | |
CN111177721A (zh) | 一种文件的病毒检测方法、装置、终端及存储介质 | |
CN101483844B (zh) | 索引移动电话号码的方法和系统 | |
Sari et al. | The implementation of timestamp, bitmap and rake algorithm on data compression and data transmission from iot to cloud | |
CN112995199A (zh) | 数据编解码方法、装置、传输系统、终端设备及存储介质 | |
CN112559847A (zh) | 网络图中节点搜索方法、装置、电子设备和存储介质 | |
CN115905168B (zh) | 基于数据库的自适应压缩方法和装置、设备、存储介质 | |
CN113420238A (zh) | 短链接生成方法、装置、电子装置和存储介质 | |
CN112307058A (zh) | 短链接的处理方法、装置、存储介质及计算机设备 | |
CN112434231B (zh) | 一种数据处理方法、装置及电子设备 | |
CN115221167A (zh) | 静态数据的存储和查询方法、装置和电子装置 | |
CN116126928A (zh) | 一种基于可变指纹布谷鸟过滤器的信息查找系统 | |
CN111950031A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |
|
RJ01 | Rejection of invention patent application after publication |