Golang基礎學習-redis使用

Golang基礎學習-redis使用

1.開發環境

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

2.安裝 redis

docker和golang 已經提早安裝;
單機redis
  • 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:存儲數據的目錄,實際可根據本身開發環境測試
-p 6379:6379 映射端口,若是開發機爲linux,可以使用--network="host"替換

3. 引入redis的package

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

4. redis經常使用方法

### 4.1 初始化linux

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 哈希git

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 參考

go-redis
dockerhub-redis
完整演示代碼-redisgithub

相關文章
相關標籤/搜索