Redisredis基本数据结构之Set
Posted wuyizuokan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redisredis基本数据结构之Set相关的知识,希望对你有一定的参考价值。
简介:
Set类似于Java中的HashSet,实际上是一个比较特殊的Map,所有的value都为null。Set结构和Java中一样,有自动去重的功能,在一些需要去重的场景下可以使用。
操作:
添加元素:sadd setName value
移除元素:srem setName value
查看set中所有元素 smember setName:
随机返回删除的元素:spop setName [count] // count为弹出的元素的个数
加上个数:
取后续集合中没有,但第一个集合中存在的元素:sdiff set1Name set2Name .....:
取后续集合中没有,但第一个集合中存在的元素,并放入到指定的集合中:sdiffstore dstSet set1Name set2Name set3Name ....:
取交集,sinter set1Name set2Name ...
取交集,结果放入一个指定的集合中:sinterstore dstSet set1Name set2Name ...
取并集,sunion payList promotionList
取并集,结果放入一个指定的集合中:sunionstore dstSet set1Name set2Name ...
将一个集合中的元素移动到另外一个集合中:smove srcSet dstSet value:
获取集合的大小,scard setName:
判断元素是否是该集合中的,sismember setName value:
下面编写一段Go代码来操作Set结构:
package main import ( "github.com/garyburd/redigo/redis" "fmt" ) func main() // 连接redis conn,err := redis.Dial("tcp", "localhost:6379") if err != nil fmt.Errorf("connection redis failed. error info: ", err) return _,err = conn.Do("sadd", "payList", "zhangfei", "machao", "liubei", "guanyu") if err != nil fmt.Errorf("sadd operation is failed. error info: ", err) return _, err = conn.Do("srem", "payList", "zhangfei") if err != nil fmt.Errorf("srem operation is failed. error info: ", err) return name, err1:= redis.String(conn.Do("spop", "payList")) if err1 != nil fmt.Errorf("spop operation is failed. error info: ", err1) return fmt.Println("the spop get value: ", name) defer conn.Close()
运行效果:
以上是关于Redisredis基本数据结构之Set的主要内容,如果未能解决你的问题,请参考以下文章
RedisRedis 集合 Set 操作 ( Set 集合数据 | 查询操作 | 查询所有值 | 随机获取值 | 获取交集并集差集 | 增操作 | 删操作 | 修改操作 )