首页 > 其他 > 详细

golang Redis运用

时间:2020-07-16 19:20:51      阅读:54      评论:0      收藏:0      [点我收藏+]

go mod init

go get  github.com/go-redis/redis

package main

import (
    "encoding/json"
    "fmt"
    "github.com/go-redis/redis"
    "time"
)

// 定时任务Task 执行代码
func  init() {
    lockKey := "task:test:mytest"
    client := GetRedisClient()
    defer client.Close()
    lockRes := client.SetNX(lockKey, time.Now().Unix(), time.Minute*1).Val()
    if !lockRes {
        return
    }
    defer client.Del(lockKey)
    // 下面执行任务代码
    // service := services.func{}
}


// 连接redis服务器 并返回客户端连接对像
func GetRedisClient() *redis.Client{
    client := redis.NewClient(&redis.Options{
        Addr:     "127.0.0.1:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
    })
    _, err := client.Ping().Result()
    if err != nil {
        panic(err)
    }
    return client
}

type Person struct {
    Name string
    Age int
}

func main(){
    client :=GetRedisClient()  // 获取客户端连接对像
    defer client.Close()
    // 设置值
    err:= client.Set("myName","Lyh",0).Err()
    if err!=nil{
        fmt.Println("redis存值出错",err)
    }
    // 获取值
    myName,err:=client.Get("myName").Result()
    if err!=nil{
        fmt.Println("redis取值出错",err)
    }
    fmt.Println("值:",myName)
    // 删除Key
    client.Del("myName")
    //  操作Hash
    var p Person
    p.Name="中国张三"
    p.Age=10
    strP,err:= json.Marshal(p)
    //  HSet  设置Hash的值
    err = client.HSet("personAll","chinses",strP).Err()
    if err!=nil{
        fmt.Println("中国张三有问题",err)
    }
    // HGet 获取Hash的值
    v:= client.HGet("personAll","chinses").Val()
    fmt.Println("redis的Hash值:",v)
    // 删除hash
    client.HDel("personAll","chinses")

}

 

golang Redis运用

原文:https://www.cnblogs.com/yingger/p/13324271.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!