Skip to content

Commit

Permalink
从配置文件获取redis和读redis数据
Browse files Browse the repository at this point in the history
  • Loading branch information
taoshihan1991 committed Dec 3, 2020
1 parent eb3344d commit d822a79
Show file tree
Hide file tree
Showing 9 changed files with 182 additions and 2 deletions.
5 changes: 5 additions & 0 deletions cmd/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/spf13/cobra"
"github.com/taoshihan1991/miaosha/controller"
"github.com/taoshihan1991/miaosha/setting"
"log"
"os"
"os/exec"
Expand Down Expand Up @@ -49,6 +50,10 @@ func run() {
//性能监控
pprof.Register(engine)
initRouter(engine)
//配置文件
setting.GetConfigIni("config.ini")
setting.GetRedisConfig()

engine.Run(baseServer)
}
func initRouter(engine *gin.Engine) {
Expand Down
3 changes: 3 additions & 0 deletions config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[redis]
ip=127.0.0.1
port=6379
9 changes: 7 additions & 2 deletions controller/product.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package controller

import "github.com/gin-gonic/gin"
import (
"github.com/gin-gonic/gin"
"github.com/taoshihan1991/miaosha/redis"
)

func GetProduct(c *gin.Context) {
id := c.Query("id")
redis.NewRedis()
c.JSON(200, gin.H{
"code": 200,
"msg": "success",
"data": nil,
"data": redis.ProductInfo(id),
})
}
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ module github.com/taoshihan1991/miaosha
go 1.14

require (
github.com/Unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8
github.com/gin-contrib/pprof v1.3.0
github.com/gin-gonic/gin v1.6.3
github.com/go-redis/redis/v8 v8.4.0
github.com/spf13/cobra v1.1.1
)
73 changes: 73 additions & 0 deletions go.sum

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions redis/product.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package redis

func ProductInfo(id string) map[string]string {
key := "product:" + id
return HashGet(key)
}
35 changes: 35 additions & 0 deletions redis/redis.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package redis

import (
"context"
"github.com/go-redis/redis/v8"
"github.com/taoshihan1991/miaosha/setting"
"log"
)

var rdb *redis.Client
var ctx = context.Background()

func NewRedis() {
rdb = redis.NewClient(&redis.Options{
Addr: setting.Redis.Ip + ":" + setting.Redis.Port,
Password: "", // no password set
DB: 0, // use default DB
})
}
func GetStr(key string) string {
str, err := rdb.Get(ctx, key).Result()
if err != nil {
log.Println(err.Error())
return ""
}
return str
}
func HashGet(key string) map[string]string {
res, err := rdb.HGetAll(ctx, key).Result()
if err != nil {
log.Println(err.Error())
return make(map[string]string)
}
return res
}
39 changes: 39 additions & 0 deletions setting/read_setting_ini.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package setting

import (
"log"
)
import "github.com/Unknwon/goconfig"

var Config *GlobalConfig
var Redis *RedisConfig
var configfile *goconfig.ConfigFile
var err error

func GetConfigIni(filepath string) error {

configfile, err = goconfig.LoadConfigFile(filepath)
if err != nil {
log.Println("配置文件读取错误,找不到配置文件", err.Error())
return err
}

Config = &GlobalConfig{}
return nil
}
func GetRedisConfig() error {
Redis = &RedisConfig{}
r, err := configfile.GetSection("redis")
if err != nil {
return err
}
for key, val := range r {
if key == "ip" {
Redis.Ip = val
}
if key == "port" {
Redis.Port = val
}
}
return nil
}
12 changes: 12 additions & 0 deletions setting/setting.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package setting

type GlobalConfig struct {
Redis RedisConfig `json:"redis"`
Database DatabaseConfig `json:"database"`
}
type RedisConfig struct {
Ip string
Port string
}
type DatabaseConfig struct {
}

0 comments on commit d822a79

Please sign in to comment.