Support redis conn param
This commit is contained in:
parent
736fddf345
commit
9d8dd8dcef
21
main.go
21
main.go
@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/gomodule/redigo/redis"
|
"github.com/gomodule/redigo/redis"
|
||||||
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
@ -21,7 +22,10 @@ const letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW
|
|||||||
|
|
||||||
const defaultPort int = 8002
|
const defaultPort int = 8002
|
||||||
const defaultExpire = 90
|
const defaultExpire = 90
|
||||||
const redisConfig = "127.0.0.1:6379"
|
const defaultRedisConfig = "127.0.0.1:6379"
|
||||||
|
|
||||||
|
var redisConfig string
|
||||||
|
var redisClient redis.Conn
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
@ -30,13 +34,17 @@ func main() {
|
|||||||
port := flag.Int("port", defaultPort, "服务端口")
|
port := flag.Int("port", defaultPort, "服务端口")
|
||||||
domain := flag.String("domain", "", "短链接域名,必填项")
|
domain := flag.String("domain", "", "短链接域名,必填项")
|
||||||
ttl := flag.Int("ttl", defaultExpire, "短链接有效期,单位(天),默认90天。")
|
ttl := flag.Int("ttl", defaultExpire, "短链接有效期,单位(天),默认90天。")
|
||||||
|
conn := flag.String("conn", defaultRedisConfig, "Redis连接,格式: host:port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if *domain == "" {
|
if *domain == "" {
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return
|
log.Fatalln("缺少关键参数")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
redisConfig = *conn
|
||||||
|
redisClient = initRedis()
|
||||||
|
|
||||||
router.POST("/short", func(context *gin.Context) {
|
router.POST("/short", func(context *gin.Context) {
|
||||||
res := &Response{
|
res := &Response{
|
||||||
Code: 1,
|
Code: 1,
|
||||||
@ -84,16 +92,12 @@ func main() {
|
|||||||
|
|
||||||
// 短链接转长链接
|
// 短链接转长链接
|
||||||
func shortToLong(shortKey string) string {
|
func shortToLong(shortKey string) string {
|
||||||
redisClient := initRedis()
|
|
||||||
|
|
||||||
longUrl, _ := redis.String(redisClient.Do("get", shortKey))
|
longUrl, _ := redis.String(redisClient.Do("get", shortKey))
|
||||||
return longUrl
|
return longUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
// 长链接转短链接
|
// 长链接转短链接
|
||||||
func longToShort(longUrl string, ttl int) string {
|
func longToShort(longUrl string, ttl int) string {
|
||||||
redisClient := initRedis()
|
|
||||||
|
|
||||||
// 是否生成过该长链接对应短链接
|
// 是否生成过该长链接对应短链接
|
||||||
_existsKey, _ := redis.String(redisClient.Do("get", longUrl))
|
_existsKey, _ := redis.String(redisClient.Do("get", longUrl))
|
||||||
if _existsKey != "" {
|
if _existsKey != "" {
|
||||||
@ -133,7 +137,10 @@ func generate(bits int) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func initRedis() redis.Conn {
|
func initRedis() redis.Conn {
|
||||||
client, _ := redis.Dial("tcp", redisConfig)
|
client, err := redis.Dial("tcp", redisConfig)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err.Error())
|
||||||
|
}
|
||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user