Go语言操作Redis(一)

149 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

1. Redis简介

Redis支持诸如字符串(strings)哈希(hashes)列表(lists)集合(sets)带范围查询的排序集合(sorted sets)位图(bitmaps)hyperloglogs带半径查询流的地理空间索引(geospatial indexes)等数据结构。

方法作用参数
Set添加kv键 string, 值 interface{}, 过期时间 time.Duration
Get获取值键 string
Del删除kv键 ...string
HSet给散列添加kv散列的键, 散列中的键 string, 值 interface{}
HGet获取散列kv的值散列的键, 散列中的键 string
FlushAll删光
Ping心跳验证
Exists确认键是否存在键 ...string
Expire给key设置过期时间键 string, 过期时间 time.Duration
Incr增加键键 string
Close关闭连接
Watch监听键,键出现时执行方法方法 func(*Tx) error, 键 ...string
Decr值减一键 string

2. Go语言连接Redis

驱动:github.com/go-redis/redis

  • 定义 redisClient
var Redis *redis.Client
  • 连接
func connect() {
	client := redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
		//Password: "redisPassword",  // 无密码,就这样就好了
		DB: 3,
	})
	_, err := client.Ping().Result() // 心跳验证
	if err != nil {
		log.Println(err)
		panic(err)
	}
	Redis = client
	fmt.Println("connect success")
}

3. List 操作

3.1 RPush

在名称为key的list尾添加一个值为value的元素

val:=redisClient.RPush("F", []string{"One", "Two", "Three","Four"})
if val == nil {
	fmt.Println("Value get error")
}
fmt.Println(val)

在这里插入图片描述

3.2 LLen & LRange

  • LLen:返回名称为key的list的长度
  • LRange:返回名称为key的list中start至end之间的元素
val:=redisClient.RPush("F", []string{"One", "Two", "Three","Four"})
if val == nil {
	fmt.Println("Value get error")
}
fmt.Println("F List:",val)
val = redisClient.LLen("F")
fmt.Println("len:",val)
res := redisClient.LRange("F",0,2)
fmt.Println("LRange:",res)

在这里插入图片描述

3.3 总结

操作名称
RPush(key, value)在名称为key的list尾添加一个值为value的元素
LPush(key, value)在名称为key的list头添加一个值为value的 元素
LLen(key)返回名称为key的list的长度
LRange(key, start, end)返回名称为key的list中start至end之间的元素
LTrim(key, start, end)截取名称为key的list
LIndex(key, index)返回名称为key的list中index位置的元素
LSet(key, index, value)给名称为key的list中index位置的元素赋值
LRem(key, count, value)删除count个key的list中值为value的元素
LPop(key)返回并删除名称为key的list中的首元素
RPop(key)返回并删除名称为key的list中的尾元素
BLPop(key1, key2,… key N, timeout)lpop命令的block版本
BRPop(key1, key2,… key N, timeout)rpop的block版本
RPopLPush(srckey, dstkey)返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部