Go语言操作Redis(二)

233 阅读2分钟

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

1. String 操作

1.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 操作类似

1.2 Incr & Incrby

1.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)
  • 结果

在这里插入图片描述

1.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)
  • 结果

在这里插入图片描述

1.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)
  • 结果

在这里插入图片描述

1.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在这里插入图片描述