手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

网址缩短程序是怎么做的

正好看到这篇文章 ,而且他也是用PHP的。所以就转一下,而且我自己也有一些短域名,可以用来做尝试。就象最近,新浪的围脖上,如果你贴了网站,他都会转成sinaurl的,这样对于新浪来说又多了一个PV。

原文如下

     近来微博很火,因为字数的限制,出现了很多网址缩短这种服务,比如sina自己用了自家的sinaurl.cn,想到自己曾经也注册了一个很短的域名k6.hk很久了,一直闲着,不知道干嘛用,突然想到可以用来做网址缩短,还不错。说干就干,一会就写好了。比如我的博客地址就可以缩短成:http://k6.hk/u 

程序的设计很简单,下面说下原理,

    数据库只有两个字段seq(自增长数字)和url(数字的url地址,建立索引)。

    用户输入一个url地址,查询表是否包含此url,如果存在,则返回seq的数字,

    如果不存在,则插入数据库,得到一个新增加的自增seq数字,为了缩短数字占用的字符数,我们可以把abc等字母的大小写用上。这样10个数字,26个 小写字母,26个大小字母就组成了一个62进制了。比如数字10000000000(100亿)转换后就是aUKYOA,只有6位了,这样就能缩短很多的 网址了。

    下面是php的进制转换代码,来源于php手册(简单吧),当然其他语言实现也是很简单的,

PHP代码
  1. <?php  
  2. //十进制转到其他制  
  3. function dec2any( $num$base=62, $index=false ) {  
  4.     if (! $base ) {  
  5.         $base = strlen$index );  
  6.     } else if (! $index ) {  
  7.         $index = substr"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ,0 ,$base );  
  8.     }  
  9.     $out = "";  
  10.     for ( $t = floor( log10( $num ) / log10( $base ) ); $t >= 0; $t-- ) {  
  11.         $a = floor$num / pow( $base$t ) );  
  12.         $out = $out . substr$index$a, 1 );  
  13.         $num = $num - ( $a * pow( $base$t ) );  
  14.     }  
  15.     return $out;  
  16. }  
  17.   
  18. function any2dec( $num$base=62, $index=false ) {  
  19.     if (! $base ) {  
  20.         $base = strlen$index );  
  21.     } else if (! $index ) {  
  22.         $index = substr"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, $base );  
  23.     }  
  24.     $out = 0;  
  25.     $len = strlen$num ) - 1;  
  26.     for ( $t = 0; $t <= $len$t++ ) {  
  27.         $out = $out + strpos$indexsubstr$num$t, 1 ) ) * pow( $base$len - $t );  
  28.     }  
  29.     return $out;  
  30. }  
    上面只是说了下实现的原理,如果要大规模的使用,后端可以抛弃数据,用key-value数据库存储,比如ttserver,将会有很高的性能提升。

      如果改下ttserver的源代码,通过ttserver的http接口直接跳转,那么性能将会非常高,一台机器一天提供上10亿次的中专都不是问题。用两台机器就可以实现高可用了,这种服务都不怎么耗费流量的。

 

--EOF--

我倒是不太清楚这个ttserver,但是我想,如果安装了memcached,也会很不错的。首次命中后直接存在memcached里,下次就可以直接访问了。当然更可以做的是,完全生成相应的跳转文件。这样就比较无耻一点了。

昨天在嘀咕看到的笑话

挺有意思,与大家分享
说是某人去扫墓,在离开陵园的时候,突然听到陵园管理人员放的音乐,居然是《桃花朵朵开》,“我在这儿等着你回来,等着你回来”,据说心里一寒。

--EOF--

又是清明了。想想几年清明都没有回家了,今年可能又不回家。

明年一定回去。真的。也该祭祭祖了。

 

爱疯软件的idea【加密了】

这篇日志被加密了,请输入密码后查看。

围脖和嘀咕以及推特

国内的微勃不算太多,但也不算少。新浪自从勃客红了之后,微勃也越来越红火。

嘀咕嘛就不用说了,如果不是饭否出事,这些都应该红不起来吧。可惜那位求生的王兴实在是生不逢时,或者就是上面没人。开啥倒啥,也算是一个悲情人物,说起来就象大富翁游戏中先被吐痰罚了款然后转过身被狗咬一出医院被飞弹炸。感觉就样。

来吧,跟着我微勃一下吧

新浪:@neatstudio

嘀咕:@neatstudio

推特:@neatstudio

 

哈哈,来follow me吧

来自淘宝QA Team的师徒说

其实我看中的并不是师徒说的内容,而是关注的用户对于学习的态度。
其实很多人在技术群里面都是认为有问题可以随便问,然后有很多人来回复你。这样的感觉很爽。但其实这样你是失去了求职的欲望,你在没有搜索没有查资料的情况下,就获取到了你想要的东西。这样的东西,你其实是记不住的。【其实不要说这样记不往,就算你查了资料,但不常用的话,也会记不住的】
求知欲,是现在在很多人所缺乏的。但埋头苦干也不一定就是好的,也要有技巧,否则,你永远是知其然不知其所以然。

下面是QA Team的原文:

小唐僧:徒儿,这堆资料你 看下。
八戒:哦。
八戒一看资料,厚厚的一沓,看了一眼没看懂,就懵在了一旁。过了许久,八戒还是对业务知识一点都不了解。

唐僧父亲:徒儿,你把商品线新人区的新人业务指南先看下。
沙和尚:好的,师傅,我马上去看。
沙和尚马上去看师傅要求了解的资料,蒙着头,一点一点的啃着业务指南,中间过程遇到好多不明白的地方,但沙和尚还是执着地盯着业务指南。

老唐僧:徒儿,你把商品线新人区的新人业务指南先看下。
孙悟空:好的,师傅。
老唐僧:徒儿,有遇到不懂的地方吗?
孙悟空:师傅,这里的业务规则,徒儿不太了解,能帮我讲解下吗?还有师傅,我想多了解些这块的业务,功能。

To 师傅
平时师傅也要多关心徒弟,提醒新人参与一些有利于新人发展的分享,问问徒弟学习的情况,是否有遇到问题之类的。

To 徒弟
要想快速的融入淘宝,快速的开展工作,一个良好的启蒙师傅很重要,但徒弟自己发挥的作用也很重要,要主动的去学,主动去解决问题。

--EOF--,原文来自http://rdc.taobao.com/blog/qa/?p=5938

主要还是一个学习态度的问题。当然对于师傅来说,不是告诉你1+1=2就完事了,能够解释一下1+1为什么等于2也是很重要的。