最近做了一个短网址服务 di81.com

最近做了一个短网址服务:   di81.com

项目中有一处需求,需要把长网址缩为短网址,把结果通过短信、微信等渠道推送给客户。刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务。

由于以前做过socket服务,对数据包的封装排列还有些印象,因此,短网址服务我第一反应是先设计数据的存储格式,我这里没有采用数据库,而是使用2个文件来实现:

Url.db存储用户提交的长网址文本,Url.idx  存储数据索引,记录每次提交数据的位置(Begin)与长度(Length),还有一些附带信息(Hits,DateTime)。由于每次添加长网址,对 两个文件都是进行Append操作,因此即使这两个文件体积很大(比如若干GB),也没有太大的IO压力。

时间: 2024-08-01 21:03:39

最近做了一个短网址服务 di81.com的相关文章

短网址服务设计

短网址服务设计 背景 短网址服务,用来将输入的一个长网址转换为一个短网址(比如附录中的案例),当用户请求这个短网址时,服务查询出真实的url; 设计这么一个短网址服务,需要考虑哪些点? 数据结构 首先,需要考虑短网址应该如何存储,使用一个key-value结构就可以: key是生成的短网址,具有唯一性: value为原始真实网址: 算法 计算短网址的算法可以很简单,短网址与原始网址就只存在一个映射关系. 从1开始递增来映射每一个网址: 1个位上可以使用26位字母+10个数字,即36进制: 当然,

Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)

用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下来訪问那一长串地址就能够通过: 浏览器重定向: 代码剪影 url路由部分: 用korma库,通过id查询到对应的url: 这里的urls是先前定义的一个entity,entity就是对数据库一个表的描写叙述: 很多其它代码见github: 请猛戳: 短网址逻辑,路由部分 Korma数据库处理

数据结构与算法简记--实现一个短网址系统

实现一个短网址系统 短网址服务 把一个长的网址转化成一个短的网址,访问这个短网址,就相当于访问原始的网址 原始网址:https://github.com/wangzheng0822/ratelimiter4j 短网址:http://t.cn/EtR9QEG 上面第二个网址是通过新浪提供的短网址服务生成的 核心功能: 把原始的长网址转化成短网址 当用户点击短网址的时候,短网址服务会将浏览器重定向为原始网址 如何通过哈希算法生成短网址? 使用比较著名并且应用广泛的一个哈希算法:MurmurHash

百度短网址服务

百度短网址服务api文档 String shareUrl = "http://www.baidu.com/"; RestTemplate template = new RestTemplate(); //百度短地址服务 String url = "http://dwz.cn/create.php"; LinkedMultiValueMap<String, Object> parts = new LinkedMultiValueMap<String,

如何实现一个短链接服务

短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 大家经常会收到一些莫名的营销短信,里面有一个非常短的链接让你跳转.新浪微博因为限制字数,所以也会经常见到这种看着不像网址的网址.短链的兴起应该就是微博限制字数激起了大家的创造力. 如果创建一个短链系统,我们应该做什么呢? 将长链接变为短链: 用户访问短链接,会跳转到正确的长链接上去. 查找到对应的长网址,并跳转到对应的页面. 短链生成方法 短码一般是由 [a - z, A - Z, 0 - 9] 这62 个字母

长长长字符串通过公共短网址服务生成二维码

移动平台少不了跟二维码打交道,关于二维码,有篇好文章推荐 目前我想实现一个功能,扫描二维码实现,当采用扫码app时转到软件市场下载,当采用已安装的指定app时自动登录,就想到了一个方案: 以下载apk链接作为url并且后面接上登录使用的身份密钥, 可是,这样的字符串好长啊! 我们知道二维码只能针对文本进行编码,并且如果字符串越长,可能越大,当然可以缩放可能又会导致扫描的时候验别率下降 咋办呢? 想到了微博用的短域名方案,经常见到的t.cn,经研究,只允许在weibo内部使用,并没有开放的api.

使用新浪短网址服务

var long_url = 'http://www.woyaoqiuxue.com?uid=123456789'; var short_url; function shorturl() { $.ajax({ type: 'GET', url: 'http://api.weibo.com/2/short_url/shorten.json', data: { source: '3818214747', url_long: long_url }, //source(即AppKey):这是网上找的测试

微博URL短网址生成算法原理及(java版、php版实现实例)

短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 例如:http://t.cn/SzjPjA 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场.估计很多朋友现在也正在使用. 看过新浪的短连接服务,发现后面主要有6个字符串组成,于是第一个

微博短网址生成算法原理

短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 例如:http://980.so/3u0JzX 表示http://www.ganmall.com.cn/h/detail/dp_928.html?chl=dwz9801 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很