## 函数并未区分大小写,具体实验的时候使用 ## [redis 文档][1] [redis 菜鸟教程 命令行使用][2] ---------- ## 操作key value string ## ``` Set(key, value):给数据库中名称为key的string赋予值value Get(key):返回数据库中名称为key的string的value Getset(key, value):给名称为key的string赋予上一次的value Mget(key1, key2,…, key N):返回库中多个string的value Setnx(key, value):添加string,名称为key,值为value Setex(key, time, value):向库中添加string,设定过期时间time Mset(key N, value N):批量设置多个string的值 Msetnx(key N, value N):如果所有名称为key i的string都不存在 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的值附加value Substr(key, start, end):返回名称为key的string的value的子串 ``` ---------- ## list/切片 操作## ``` 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的头部 ``` ---------- ## redis 的 set 操作 ## ``` sadd(key, member):向名称为key的set中添加元素member srem(key, member) :删除名称为key的set中的元素member spop(key) :随机返回并删除名称为key的set中一个元素 smove(srckey, dstkey, member) :移到集合元素 scard(key) :返回名称为key的set的基数 sismember(key, member) :member是否是名称为key的set的元素 sinter(key1, key2,…key N) :求交集 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 sunion(key1, (keys)) :求并集 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 sdiff(key1, (keys)) :求差集 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 smembers(key) :返回名称为key的set的所有元素 srandmember(key) :随机返回名称为key的set的一个元素 ``` ---------- ## hash 操作 ## ``` hset(key, field, value):向名称为key的hash中添加元素field hget(key, field):返回名称为key的hash中field对应的value hmget(key, (fields)):返回名称为key的hash中field i对应的value hmset(key, (fields)):向名称为key的hash中添加元素field hincrby(key, field, integer):将名称为key的hash中field的value增加integer hexists(key, field):名称为key的hash中是否存在键为field的域 hdel(key, field):删除名称为key的hash中键为field的域 hlen(key):返回名称为key的hash中元素个数 hkeys(key):返回名称为key的hash中所有键 hvals(key):返回名称为key的hash中所有键对应的value hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value ``` ---------- ##简单示例## ``` package main import ( "context" "fmt" "github.com/go-redis/redis" ) var ct = context.Background() func main() { //连接redis redisDB := redis.NewClient(&redis.Options{ Addr: "localhost:6379", //数据库地址 Password: "", //数据库密码 DB: 0, //数据库连接数 /* 启用https TLSConfig: &tls.Config{ ServerName: "www.yuhenm.top", }, */ }) //age是key,19是value,30000是这个值的过期时间,倘若是0就是永不过期 增加这么一个值 set := redisDB.Set(ct, "age", "19", 30000) fmt.Println(set) RDB("age", redisDB) //向list添加元素 redisDB.RPush(ct,"list","wdnmd") length,err:=redisDB.LLen(ct,"list").Result() if err==redis.Nil{ panic(err) } fmt.Println("list的长度",length) fmt.Println(redisDB.Incr(ct,"WDNMS")) redisDB.BR } func RDB(key string, redisDB *redis.Client) { val, err := redisDB.Get(ct, key).Result() //redis.Nil指的是空字符串或者nil if err == redis.Nil { fmt.Println("key not") } //访问其对应的value值 fmt.Println(val) } ``` ---------- [1]: https://redis.uptrace.dev/#executing-commands [2]: https://www.runoob.com/redis/redis-server.html Loading... ## 函数并未区分大小写,具体实验的时候使用 ## [redis 文档][1] [redis 菜鸟教程 命令行使用][2] ---------- ## 操作key value string ## ``` Set(key, value):给数据库中名称为key的string赋予值value Get(key):返回数据库中名称为key的string的value Getset(key, value):给名称为key的string赋予上一次的value Mget(key1, key2,…, key N):返回库中多个string的value Setnx(key, value):添加string,名称为key,值为value Setex(key, time, value):向库中添加string,设定过期时间time Mset(key N, value N):批量设置多个string的值 Msetnx(key N, value N):如果所有名称为key i的string都不存在 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的值附加value Substr(key, start, end):返回名称为key的string的value的子串 ``` ---------- ## list/切片 操作## ``` 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的头部 ``` ---------- ## redis 的 set 操作 ## ``` sadd(key, member):向名称为key的set中添加元素member srem(key, member) :删除名称为key的set中的元素member spop(key) :随机返回并删除名称为key的set中一个元素 smove(srckey, dstkey, member) :移到集合元素 scard(key) :返回名称为key的set的基数 sismember(key, member) :member是否是名称为key的set的元素 sinter(key1, key2,…key N) :求交集 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 sunion(key1, (keys)) :求并集 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 sdiff(key1, (keys)) :求差集 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 smembers(key) :返回名称为key的set的所有元素 srandmember(key) :随机返回名称为key的set的一个元素 ``` ---------- ## hash 操作 ## ``` hset(key, field, value):向名称为key的hash中添加元素field hget(key, field):返回名称为key的hash中field对应的value hmget(key, (fields)):返回名称为key的hash中field i对应的value hmset(key, (fields)):向名称为key的hash中添加元素field hincrby(key, field, integer):将名称为key的hash中field的value增加integer hexists(key, field):名称为key的hash中是否存在键为field的域 hdel(key, field):删除名称为key的hash中键为field的域 hlen(key):返回名称为key的hash中元素个数 hkeys(key):返回名称为key的hash中所有键 hvals(key):返回名称为key的hash中所有键对应的value hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value ``` ---------- ##简单示例## ``` package main import ( "context" "fmt" "github.com/go-redis/redis" ) var ct = context.Background() func main() { //连接redis redisDB := redis.NewClient(&redis.Options{ Addr: "localhost:6379", //数据库地址 Password: "", //数据库密码 DB: 0, //数据库连接数 /* 启用https TLSConfig: &tls.Config{ ServerName: "www.yuhenm.top", }, */ }) //age是key,19是value,30000是这个值的过期时间,倘若是0就是永不过期 增加这么一个值 set := redisDB.Set(ct, "age", "19", 30000) fmt.Println(set) RDB("age", redisDB) //向list添加元素 redisDB.RPush(ct,"list","wdnmd") length,err:=redisDB.LLen(ct,"list").Result() if err==redis.Nil{ panic(err) } fmt.Println("list的长度",length) fmt.Println(redisDB.Incr(ct,"WDNMS")) redisDB.BR } func RDB(key string, redisDB *redis.Client) { val, err := redisDB.Get(ct, key).Result() //redis.Nil指的是空字符串或者nil if err == redis.Nil { fmt.Println("key not") } //访问其对应的value值 fmt.Println(val) } ``` ---------- [1]: https://redis.uptrace.dev/#executing-commands [2]: https://www.runoob.com/redis/redis-server.html 最后修改:2021 年 07 月 19 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏