go语言mysql 短连接_Golang 生成短链接服务

本文介绍了如何使用Golang和MySQL创建短链接服务。通过自增序列算法结合用户自定义短码,确保唯一性。服务接收待转换的URL和状态(自动分配或用户自定义),返回生成的短链接。数据表设计包括长连接、短连接码、状态和时间戳等字段,并实现了唯一性约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是短链接

原理解析

当我们在浏览器里输入 https://dwz.cn/XzhYJMkZ

DNS首先解析获得 https://dwz.cn/ 的 IP 地址

当 DNS 获得 IP 地址以后,会向这个地址发送 HTTP请求,查询短码 XzhYJMkZ

https://dwz.cn/ 服务器会通过短码 XzhYJMkZ 获取对应的长 URL

请求通过 HTTP 301 转到对应的长 URL http://www.baidu.com

本文采用 自增序列算法 + 用户自定义短码

设置 id 自增,一个 10进制 id 对应一个 62进制的数值,1对1,也就不会出现重复的情况。

这个利用的就是低进制转化为高进制时,字符数会减少的特性。

可使用redis Incr 实现id自增。

数据表设计

CREATE TABLE `links` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`url` varchar(200) COLLATE utf8mb4_bin NOT NULL COMMENT '长连接',

`keyword` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '短链接码',

`status` tinyint(1) NOT NULL COMMENT '1系统分配 2用户自定义',

`create_time` bigint(20) NOT NULL,

`update_time` bigint(20) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `links_UN` (`url`),

UNIQUE KEY `links_keyword` (`keyword`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

服务使用 生成短链接

form-data 参数 url 待转换的地址 ,status (1)自动分配 (2)用户自定义 ,keyword 自定义的短码

请求值 url:www.google.com status:1 keyword:

返回值{

"code": 200,

"data": "http://127.0.0.1:8099/8kBWU",

"msg": "success"

}

完整演示代码 点击这里

联系 QQ: 3355168235

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值