项目简介
本项目是基于Midway框架,结合Redis和MySQL搭建的短链服务系统。其核心功能是将长链接转换为短链接,方便链接的传播与使用。系统采用前端负载均衡(nginx)、urlserver集群、Redis缓存层和MySQL数据库的架构设计,具备良好的稳定性与扩展性。
项目的主要特性和功能
- 短链生成:接收长链接输入,运用基于62进制字符串与数据库ID转换的算法生成短链接,可用性和扩展性高。
- 长链还原:根据短链接找回并返回原始长链接。
- 缓存优化:利用Redis缓存,降低数据库访问压力,提升系统响应速度。
- 安全防护:通过校验码机制拦截无效请求,使用布隆过滤器过滤非数据库请求,增强系统安全性。
安装使用步骤
准备工作
假设你已经下载了本项目的源码文件。
配置修改
将src/config/config*.ts
中的MySQL和Redis配置修改为本地调试配置。
安装依赖并启动项目
在项目根目录下执行以下命令:
bash
$ npm i
$ npm run dev
访问项目
打开浏览器访问http://localhost:7001/
。
使用示例
短链生成
bash
curl -X POST -d "url=http://www.baidu.com" http://localhost:7001/api/createByLongUrl
返回示例:
json
{
"code":0,
"msg":"ok",
"data":{
"url":"https://withnate.cn/o9"
}
}
长链还原
bash
curl http://localhost:7001/api/getByShortUrl?url=https://withnate.cn/l
返回示例:
json
{
"code": 0,
"msg": "ok",
"data": {
"url": "http://www.baidu.com"
}
}
内置指令
npm run lint
:进行代码风格检查。npm test
:执行单元测试。
待办事项
- 添加IP来源限制,防止某个IP大量请求。
- 开发删除功能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】