博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
set类型以及其操作
阅读量:6549 次
发布时间:2019-06-24

本文共 3288 字,大约阅读时间需要 10 分钟。

sets类型

sets类型以及操作
Set是无序集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd
向名称为key的set中添加元素,返回添加成功的个数

127.0.0.1:6379> sadd key member [member ...]127.0.0.1:6379> sadd myset1 one(integer) 1127.0.0.1:6379> sadd myset1 two three(integer) 2

 

smembers
查看集合元素

127.0.0.1:6379> smembers key127.0.0.1:6379> smembers myset11) "one"2) "two"3) "three"

 

srem
删除名称为key的set中元素,返回成功执行的个数

127.0.0.1:6379> srem key member [member ...]127.0.0.1:6379> srem myset1 one(integer) 1127.0.0.1:6379> smembers myset11) "two"2) "three"

 

spop
随机返回并删除名称为key的set中的一个元素

spop key [count]127.0.0.1:6379> spop myset1 21) "two"2) "three"127.0.0.1:6379> smembers myset1(empty list or set)

 

sdiff
返回所有给定key与第一个key的差集
谁在前面以谁为标准,返回其他集合少于标准的

127.0.0.1:6379> sdiff key [key ...]127.0.0.1:6379> smembers myset21) "two"2) "four"3) "three"127.0.0.1:6379> smembers myset11) "one"2) "two"3) "three"127.0.0.1:6379> sdiff myset1 myset21) "one"127.0.0.1:6379> sdiff myset2 myset11) "four"

 

sdiffstore
返回两个集合的差集,并将差集存储到另一个集合里面

127.0.0.1:6379> sdiffstore destination key [key ...]127.0.0.1:6379> sdiffstore myset3 myset1(integer) 3127.0.0.1:6379> smembers myset31) "one"2) "two"3) "three"127.0.0.1:6379> sdiff myset4 myset1 myset2(empty list or set)127.0.0.1:6379> smembers myset11) "one"2) "two"3) "three"127.0.0.1:6379> smembers myset21) "two"2) "four"3) "three"127.0.0.1:6379> sdiffstore myset4 myset1 myset2(integer) 1127.0.0.1:6379> smembers myset41) "one"

 

sinter
返回所有给定key的交集

127.0.0.1:6379> sinter key [key ...]127.0.0.1:6379> smembers myset11) "one"2) "two"3) "three"127.0.0.1:6379> smembers myset21) "two"2) "four"3) "three"127.0.0.1:6379> sinter myset1 myset21) "two"2) "three"

 

sinterstore
返回两个集合的交集并且储存在指定集合内

127.0.0.1:6379> sinterstore destination key [key ...]127.0.0.1:6379> sinterstore myset4 myset1 myset2(integer) 2127.0.0.1:6379> smembers myset41) "two"2) "three"

 

sunion
返回所有给定集合的并集

127.0.0.1:6379> sunion key [key ...]127.0.0.1:6379> smembers myset11) "one"2) "two"3) "three"127.0.0.1:6379> smembers myset21) "two"2) "four"3) "three"127.0.0.1:6379> sunion myset1 myset21) "one"2) "two"3) "four"4) "three"

 

sunionstrore
返回给顶集合的并集,并且存储在另一个集合

127.0.0.1:6379> sunionstore destination key [key ...]127.0.0.1:6379> sunionstore myset5 myset1 myset2(integer) 4127.0.0.1:6379> smembers myset51) "one"2) "two"3) "four"4) "three"

 

smove
从个一的个key中的对应的set中移除member并添加到第二个对应的set中

127.0.0.1:6379> smove source destination member127.0.0.1:6379> smembers myset11) "one"2) "two"127.0.0.1:6379> smembers myset21) "two"2) "four"3) "three"127.0.0.1:6379> smove myset1 myset2 one(integer) 1127.0.0.1:6379> smembers myset11) "two"127.0.0.1:6379> smembers myset21) "one"2) "two"3) "four"4) "three"

 

scard
返回名称为key的集合中的集合的个数

127.0.0.1:6379> scard key127.0.0.1:6379> scard myset1(integer) 1127.0.0.1:6379> scard myset2(integer) 4

 

sismember
测试某个元素是不是某个集合的元素

127.0.0.1:6379> sismember key member127.0.0.1:6379> sismember myset1 one(integer) 0127.0.0.1:6379> sismember myset two(integer) 0127.0.0.1:6379> smembers myset11) "two"127.0.0.1:6379> sismember myset1 two(integer) 1

 

srandmember
随机返回集合中的一个元素,但不删除

127.0.0.1:6379> srandmember key [count]127.0.0.1:6379> srandmember myset2"four"127.0.0.1:6379> srandmember myset2"one"127.0.0.1:6379> srandmember myset2 61) "one"2) "two"3) "three"4) "four"

 

转载地址:http://nguco.baihongyu.com/

你可能感兴趣的文章
如何通过结构中的某个变量获取结构本身的指针?(container_of详解)
查看>>
Android 关于mnt/sdcard和sdcard的区别
查看>>
特征变换(7)总结
查看>>
网络工程师之路怎么走?
查看>>
go语言unix域套接字发送udp报文
查看>>
2.并发和并行
查看>>
OpenGL学习(二)用户与交互
查看>>
神奇的代码-常见错误代码注意点
查看>>
[直播一揽子]编码构思和套路
查看>>
[直播一揽子]x264参数的解释
查看>>
iOS学习之Objective-C 2.0 运行时系统编程
查看>>
Exchange2007-Exchange2010升级-06 数据库高可用组的创建
查看>>
phpHiveAdmin是如何通过Hive/Hadoop工作的
查看>>
双向链表内结点的删除(4)
查看>>
项目总结
查看>>
JSON字符串转成对象
查看>>
SaltStack 中ZMQ升级
查看>>
exchange 2013 提示“HTTP 500内部服务器错误”
查看>>
Linux运维学习笔记之一:运维的原则和学习方法
查看>>
怎样使用原型设计中的组件样式功能
查看>>