golang redis操作


讀取json文件,寫入redis,再從redis讀取,解析數據

json文件內容:

{
  "0x001":{"timestamp":1532432343, "value":0},
  "0x002":{"timestamp":1532432343, "value":0},
  "0x003":{"timestamp":1532432343, "value":0}
}

代碼:

package main

import (
    "github.com/go-redis/redis"
    "github.com/json-iterator/go"
    "io/ioutil"
    "fmt"
)

type serviceProxy struct {
    redis *redis.Client
}

var Service *serviceProxy

func init() {
    Service = new(serviceProxy)
    initRedis()
}
func (s *serviceProxy) Close() {
    s.redis.Close()
}
func initRedis() {
    option, err := redis.ParseURL("redis://:@127.0.0.1:6379")
    if err != nil {
        panic(err)
    }
    Service.redis = redis.NewClient(option)
    println("redis services started")
}

type prse struct {
    Timestamp int64   `json:"timestamp"`
    Value     float64 `json:"value"`
}

func main() {
    defer func() {
        Service.redis.Close()
    }()

    // 讀取json文件
    b, err := ioutil.ReadFile("./js.json")
    if err != nil {
        println(11)
    }
    // 解析
    var resp interface{}
    jsoniter.Unmarshal(b, &resp)

    // 轉換成字符串
    strJson,_ := jsoniter.MarshalToString(resp)
    // 保存到redis
    Service.redis.HSet("mos.ups","id1", strJson)

    // 從redis讀取
    s := Service.redis.HGetAll("mos.ups").Val()
    fmt.Println(55, s)

    // 解析從redis中讀取的數據
    result := make(map[string]map[string]prse, 0)
    var parse map[string]prse
    for k, val := range s {
        jsoniter.Unmarshal([]byte(val), &parse)
        result[k] = parse
    }
    strResult, _ := jsoniter.MarshalToString(result)
    fmt.Println(123, strResult)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM