- 如果用户自行提供了
Slug
,则使用用户的Slug
- 实现方法是基于
unix
时间戳转62进制生成字符串,保证不重复 -
func Base62(url string) string { id := time.Now().Unix() var baseChars = []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") var result []byte for id > 0 { idx := id % 62 result = append([]byte{baseChars[idx]}, result...) id /= 62 } return string(result) }
- 实现了简单的
SET
GET
Exists
操作
- 在
config.yaml
填写好配置
config: # 系统配置
base_url: 127.0.0.1:8000/api/ # 跳转的链接
port: :8000 # gin运行端口
redis: # redis配置
Addr: 127.0.0.1:6379 #redis地址
Passwd: # 密码
DB: 0 # 链接的数据库
CacheDuration: "4380h" #设置超时, 以小时为单位
go build
或go run .
- 执行
- 打开
127.0.0.1:{your_port}
查看服务
- Q:为什么运行不起来
- A: 检查下端口有没有被占用或者
redis
配置是否成功
- A: 检查下端口有没有被占用或者
- 使用
redis
缓存 -
Goroutine
优化性能 - 分布式处理架构
- 增加后台可视化