redis学习系列--5.redis-sets 类型
2016-12-30 00:46
471 查看
set是集合,和数学中的集合类似, 集合的操作有添加,删除,还有对多个集合求交集,并集,差集等操作, 操作中key理解为集合的名字.
redis的set是string类型的无序集合. 通过hash table 实现的,所以添加,删除和查找的时间复杂度都是o(1).
set的相关操作如下:
1.sadd //向名称为key的set中添加元素
2.smembers //获取名称为key的set的所有member.
2.srem //删除名称为key的set中的元素member
3.spop //随机返回并删除名称为key的set中一个元素.
4.spop //随机返回并删除名称为key的set中一个元素
5.sdiff //返回所有给定key与第一个key的差集(差集: 所有属于A集合且不属于B集合的元素构成的集合)
6.sdiffstore //返回所有给定key于第一个key的差集,并将结果存为另一个key.
7.sinter //返回所有给定key的交集(由所有属于集合A且属于集合B的元素所组成的集合叫交集. 网络伟大!)
8.sinterstore //返回所有给定key的交集,并将结果存为另一个key
9.sunion //返回所有给定key的并集(A集合和B集合的并集是所有A的元素和所有B的元素而且没有其他元素的集合)
10.smove //从第一个key对应的set中移除member并添加到第二个对应set中
14.sunionstore //返回所有给定key的并集,并将结果存为另一个key
redis的set是string类型的无序集合. 通过hash table 实现的,所以添加,删除和查找的时间复杂度都是o(1).
set的相关操作如下:
1.sadd //向名称为key的set中添加元素
sadd myset name 输出:(integer)1 //添加成功
2.smembers //获取名称为key的set的所有member.
smembers myset 输出:1)"name"
2.srem //删除名称为key的set中的元素member
srem myset name 输出:(integer)1 //删除成功
3.spop //随机返回并删除名称为key的set中一个元素.
sadd myset name1 sadd myset name2 sadd myset name3 smembers myset 输出:1)"name2" 输出:2)"name3" 输出:3)"name1"
4.spop //随机返回并删除名称为key的set中一个元素
spop myset 输出:"name2"
5.sdiff //返回所有给定key与第一个key的差集(差集: 所有属于A集合且不属于B集合的元素构成的集合)
sadd myset2 name1 sadd myset2 sex sadd myset2 work sdiff myset myset2 输出:1)"name3"
6.sdiffstore //返回所有给定key于第一个key的差集,并将结果存为另一个key.
sadd user hou1 sadd user hou2 sadd user hou3 sadd user1 hou1 sadd user1 hou4 sadd user1 hou5 sdiffstore user_diff user user1 smembers user_diff 输出:1)"hou2" 输出:2)"hou3"
7.sinter //返回所有给定key的交集(由所有属于集合A且属于集合B的元素所组成的集合叫交集. 网络伟大!)
sinter user user1 输出:1)"hou1"
8.sinterstore //返回所有给定key的交集,并将结果存为另一个key
sinterstore user_inter user user1 smembers user_inter 输出:1)"hou1"
9.sunion //返回所有给定key的并集(A集合和B集合的并集是所有A的元素和所有B的元素而且没有其他元素的集合)
sunion user user1 输出:1)"hou5" 输出:2)"hou1" 输出:3)"hou3" 输出:4)"hou2" 输出:5)"hou4"
10.smove //从第一个key对应的set中移除member并添加到第二个对应set中
smove user user1 hou2 smembers user 输出:1)"hou3" 输出:2)"hou1"11.scard //返回名称为key的set的元素的个数.
scard user 输出:(integer)212. sismember //测试member是否是名称为key的set的元素
sismember user hou1 输出:(integer)1 //hou1是user的member13.srandmember //随机返回名称为key的set的一个元素,但不是删除元素
srandmember user 2 输出:1)"hou1" 输出:2)"hou3"
14.sunionstore //返回所有给定key的并集,并将结果存为另一个key
sunionstore user_unst user user1
smembers user_unst
输出:1)"hou5"
输出:2)"hou1"
输出:3)"hou3"
scard user 输出:(integer)2
相关文章推荐
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册——有序集合(Sorted Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习之sets类型及操作
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- redis 学习手册之无序集合数据类型sets操作命令
- redis学习系列--3.redis-hashes 类型
- redis学习系列--4.redis-lists 类型
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)
- Redis学习手册(Sorted-Sets数据类型)