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 初始化
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 参考
go-redis
dockerhub-redis
完整演示代码-redis
有疑问加站长微信联系(非本文作者)