V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ayjzza
V2EX  ›  PHP

请问这样的短网址是怎么生成的(非传统形式)

  •  
  •   ayjzza · 2015-05-22 22:15:05 +08:00 · 2660 次点击
    这是一个创建于 3474 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在这http://nh.gs/

    我连续生成网址得到
    http://nh.gs/4hm
    http://nh.gs/con

    base62后
    4hm => 16452
    con => 47639

    传统的都是生成5到6位的,这个应该是自增的,但是为什么连续生成的经过base62后数值却差这么多,按理是连续的,是怎么做的

    3 条回复    2015-05-24 00:03:41 +08:00
    Ryans
        1
    Ryans  
       2015-05-22 22:58:45 +08:00
    短URL 是类似排号器一样,来一个URL 自增一个号。
    那么为了应付大批量并发,假设有1000个排号器(进程/服务器),那么对于第42排号器来说来一个URL是42,来第二个URL是1042,第三个URL是2042.

    然后将号码按66进制转换,或者你看到的base64转换,得到结果。
    ayjzza
        2
    ayjzza  
    OP
       2015-05-23 07:28:19 +08:00 via Android
    谢谢,我也是这么想的,当大量并发时采用此方法会避免生成一对多的短网址,但对于排号器怎么相互协调,比如一个排号器排满后应该怎么做还没有很好的方法
    leonard916
        3
    leonard916  
       2015-05-24 00:03:41 +08:00
    我一直覺得那東西直接用隨機數就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4526 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:07 · PVG 12:07 · LAX 20:07 · JFK 23:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.