golang Redis运用

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")

}
复制代码

 

posted @   酒沉吟  阅读(212)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2014-07-16 MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates)
点击右上角即可分享
微信分享提示