【Go开源宝藏】Go 语言操作 Redis(二)

举报
小生凡一 发表于 2022/02/03 22:15:57 2022/02/03
【摘要】 3. String 操作 3.1 Set & GetSet 源码可以看到这个set的第一个参数就是key,第二个参数是value,第三个参数就是过期时间。Get 源码set Key、Value以及过期时间Key 为Fan,Value为One,过期时间为3sredisClient.Set("Fan","One",3*time.Second)在3s内打印出来val := redisClient...

3. String 操作

3.1 Set & Get

Set 源码

可以看到这个set的第一个参数就是key,第二个参数是value,第三个参数就是过期时间。
在这里插入图片描述

Get 源码
在这里插入图片描述

  • set Key、Value以及过期时间

Key 为Fan,Value为One,过期时间为3s

redisClient.Set("Fan","One",3*time.Second)
  • 3s内打印出来
val := redisClient.Get("Fan")
if val == nil {
	fmt.Println("Value get error")
}
  • 3s过后
time.Sleep(3*time.Second)
fmt.Println("3s passing")
val = redisClient.Get("Fan")
fmt.Println("name ", val)
  • 结果

第一个是在3s内,是可以打印出来的。

第二个是过了3s的,已经是nil了。
在这里插入图片描述

** del 操作与 get 操作类似。**

3.2 Incr & Incrby

3.2.1 Incr 加 1

redisClient.Set("Fan", "1", 3*time.Second)
val := redisClient.Get("Fan")
if val == nil {
	fmt.Println("Value get error")
}
fmt.Println("Incr before:", val)
num := redisClient.Incr("Fan")
fmt.Println("Incr after:", num)
  • 结果

在这里插入图片描述

3.2.2 Incrby 加 val

Incrby(key, integer):名称为key的string增加integer

redisClient.Set("One", "1", 3*time.Second)
val := redisClient.Get("One")
if val == nil {
	fmt.Println("Value get error")
}
fmt.Println("IncrBy before:", val)
num := redisClient.IncrBy("One",2)
fmt.Println("IncrBy after:", num)
  • 结果

在这里插入图片描述

3.3 MSet & MGet

设置多个 key value

MSet(key1, value1, key2, value2, key3, value3)

获取多个key

MGet(key1, key2, key3)

redisClient.MSet("Fan","One", "1","2","key1","value1")
val := redisClient.MGet("Fan","1","key1")
if val  == nil {
	fmt.Println("Value get error")
}
fmt.Println(val)
  • 结果

在这里插入图片描述

3.4 总结

做一些总结,就不再过多展示了

操作 解释
Set(key, value) 给数据库中名称为key的string赋予值valueget(key):返回数据库中名称为key的string的value
GetSet(key, value) 给名称为key的string赋予上value的值
Del(Key) 删除名称为key的value
MSet(key N, value N) 批量设置多个string的值
MGet(key1, key2,…, key N) 返回库中多个string的value
SetNX(key, value) 添加string,名称为key,值为value
MSetNX(key N, value N) 如果所有名称为key i的string都不存在
SetXX(key, time, value) 向库中添加string,设定过期时间time
Incr(key) 名称为key的string增1操作
Incrby(key, integer) 名称为key的string增加integer
Decr(key) 名称为key的string减1操作
Decrby(key, integer) 名称为key的string减少integer
Append(key, value) 名称为key的string的值附加valuesubstr(key, start, end):返回名称为key的string的value的子串

最后提醒一下redis的默认过期时间不过期,所以如果没有设置过期时间的话,要手动del

val := redisClient.MGet("Fan","1","key1")
if val  == nil {
	fmt.Println("Value get error")
}
fmt.Println(val)
res := redisClient.Del("1")
fmt.Println(res)

在这里插入图片描述
已经没有这个value
在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。