18

Golang基础学习-redis使用

 4 years ago
source link: https://studygolang.com/articles/25947
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Golang基础学习-redis使用

1.开发环境

系统OS: MAC  
docker版本: 19.03.5  
Golang版本: go version go1.13.4 darwin/amd64  
redis版本: redis:lastest

2.安装 redis

docker和golang 已经提前安装;

  • docker pull redis:latest
  • docker run --name redisserver -d -p 6379:6379 -v Users/Keil/data:/data redis redis-server --appendonly yes

/Users/Keil/data:存储数据的目录,实际可根据自己开发环境测试

3. 引入redis的package

  • go get -u github.com/go-redis/redis

4. redis常用方法

### 4.1 初始化

var (  
   RedisIp    = "127.0.0.1"
   RedisPort  = "6379" 
   expireTime = 600
   rdb  *redis.Client
)

rdb = redis.NewClient(&redis.Options{ Addr: RedisIp + ":" + RedisPort, Password: "", }) 
    _, err := rdb.Ping().Result() 
   if err != nil {
       fmt.Println("redis连接错误")
}

4.2 string操作

4.2.1 判断 key是否存在

a, err := rdb.Exists("ming").Result() 
    if err != nil {
        fmt.Println("判断key存在失败")
        return 
    } 
    if a == 1 { 
        fmt.Println("key存在") 
    }

4.2.2存储key

err = rdb.Set("ming", "ming", time.Duration(expireTime)*time.Second).Err()
if err != nil { 
    fmt.Println("设置key失败") 
    return 
}

4.2.3 获取key

value, err := rdb.Get("ming").Result() 
if err != nil { 
   fmt.Println("设置key失败") 
   return
} 
fmt.Println(value)

4.2.4 设置过期时间

err = rdb.Expire("ming", time.Duration(300)*time.Second).Err()
if err != nil {
   fmt.Println("设置过期时间") 
   return
}

### 4.3 哈希

4.3.1设置hash

status, err := rdb.HSet("ming1", "id", "12313").Result()  
if err != nil {  
   fmt.Println("err:redis服务异常")  
   return  
}  
if true == status {  
   fmt.Println("值已存在")  
} else {  
   fmt.Println("设置成功")  
}

4.3.2 获取key

key, err := rdb.HGet("ming1", "id").Result()  
if err != nil {  
   fmt.Println("获取不到值")  
   return  
}  
fmt.Println(key)

4.3.3 判断hash中,值是否存在

status, _ = rdb.HExists("ming1", "id").Result()  
if true == status {  
   fmt.Println("值已存在")  
} else {  
   fmt.Println("设置成功")  
}

4.3.4. 删除hash中的值

statusDel, err := rdb.HDel("ming1", "id").Result()  
if err != nil {  
  fmt.Println("err:redis服务异常")  
  return  
}  
if 1 == statusDel {  
  fmt.Println("删除hash值:id成功")  
}

4.4.4 删除key

statusDel, err = rdb.Del("ming").Result()  
if 1 == statusDel {  
   fmt.Println("删除值成功")  
}

5 参考


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK