redis set、zset类型
一、集合类型
二、查看set、zset集合类型命令
三、set、zset集合类型实例
一、集合类型
1、redis的集合类型,分为两种,即有序和无序。
2、既然是集合类型,因此也要满足集合的特性即
a、集合的确定性: 组成集合的元素的性质必须明确,不允许有模棱两可、含混不清的情况
b、集合的互异性: 对于一个给定的集合,集合中的元素是互异的”,就是说,“对于一个给定的集合,它的任何两个元素都是不同的
c、集合的无序性: 指表示一个集合时,构成这个集合的元素是无序的
3、集合分类(假设集合A和集合B都是非空)
a、并集: 去掉集合A和集合B的公共部分的元素,组成新的集合
b、交集: 获取集合A和集合B的公告部分的元素,组成新的集合
c、空集: 空元素的集合
二、查看set、zset集合类型命令
1、set类型命令说明
命令名称
格式
说明
sadd
sadd key member
将member元素加入到key当中
srem
srem key member
移除集合key中的元素member
smembers
smembers key
列举集合key的所有元素
sismembers
sismembers key member
判断member元素是否是集合key的元素
scard
scard key
获取集合key的元素个数
smove
smove source destination member
将member元素从source集合移动到destination集合
spop
spop key
移除并返回集合中的一个随机元素
srangmember
srangmember key
返回集合中的一个随机元素
sinter
sinter key key1…
返回一个集合的全部成员,该集合是所有给定集合的交集。
不存在的key被视为空集。
当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
sinterstore
sinterstore destination key key1…
此命令等同于sinter,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination集合已经存在,则将其覆盖
sunion
sunion key key1
返回一个集合的全部成员,该集合是所有给定集合的并集。
不存在的key被视为空集
sunionstore
sunionstore destination key key1…
此命令等同于sunion,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination已经存在,则将其覆盖
sdiff
sdiff key key1
返回一个集合的全部成员,该集合是所有给定集合的差集 。不存在的key被视为空集
sdiffstore
sdiffstore destination key key1…
此命令等同于sdiff,但它将结果保存到destination集合,而不是简单地返回结果集。如果destination集合已经存在,则将其覆盖
2、zset类型命令说明
命令名称
格式
说明
zadd
zadd key score member
将member元素及其score值加入到有序集key当中。
score值可以是整数值或双精度浮点数。
zrem
zrem key member
移除有序集key中的成员member,如果member不是有序集中的成员,那么不执行任何动作。当key存在但不是有序集类型时,返回一个错误
zcard
zcard key
返回有序集key的基数
zcount
zcount key min max
返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员
zscore
zscore key member
返回有序集key中,成员member的score值
zincrby
zincrby key increment member
为有序集key的成员member的score值加上增量increment
zrange
zrange key start stop [WITHSCORES]
返回有序集key中,指定区间内的成员。其中成员的位置按score值递增(从小到大)来排序
zrevrange
zrevrange key start stop [WITHSCORES]
返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列
zrangebyscore
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列
zrevrangebyscore
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有的成员。有序集成员按score值递减(从大到小)的次序排列。
zrank
zrank key member
返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。排名以0为底,也就是说,score值最小的成员排名为0。
zrevrank
zrevrank key member
返回有序集key中成员member的排名。其中有序集成员按score值递减(从大到小)排序。排名以0为底,也就是说,score值最大的成员排名为0。
zremrangebyrank
zremrangebyrank key start stop
除有序集key中,指定排名(rank)区间内的所有成员。
区间分别以下标参数start和stop指出,包含start和stop在内
zremrangebyscore
zremrangebyscore key min max
移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员
zinterstore
zinterstore destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的交集,,其中给定key的数量必须以numkeys参数指定
zunionstore
zunionstore destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定。默认情况下,结果集中某个成员的score值是所有给定集下该成员score值的和
3、set类型命令例子
3.1、为集合user,添加元素‘xiaobei’
127.0.0.1:6379> sadd user xiaobei
(integer) 1
3.2、查看集合user的所有元素
127.0.0.1:6379>smembers user
1)"xiaobei"
3.3、判断xiaobei是否是集合user的元素
127.0.0.1:6379>sismember user xiaobei
(integer) 1
3.4、移除集合user的元素 xiaobei
127.0.0.1:6379> sremuser xiaobei
(integer) 1
3.5、判断集合user的个数
127.0.0.1:6379> sadduser xiaobei
(integer) 1
127.0.0.1:6379> sadduser script-boy
(integer) 1
127.0.0.1:6379>scard user
(integer) 2
3.6、把集合user的元素script-boy移动到集合user1中
127.0.0.1:6379>smove user user1 script-boy
(integer) 1
127.0.0.1:6379>smembers user1
1)"script-boy"
3.7、求集合user和集合user1
127.0.0.1:6379>smembers user
1)"script-boy"
2) "xiaobei"
127.0.0.1:6379>smembers user1
1)"script-boy"
127.0.0.1:6379>sinter user user1
1)"script-boy"
3.8、把集合user和集合user1的交集保存在user2中
127.0.0.1:6379>sinterstore user2 user1 user
(integer) 1
127.0.0.1:6379>smembers user2
1)"script-boy"
3.9、求集合user和集合user1的并集
127.0.0.1:6379>sunion user user1
1)"script-boy"
2) "xiaobei"
3.10、求集合user和集合user1的并集保存在user2中
127.0.0.1:6379>sunionstore user2 user user1
(integer) 1
127.0.0.1:6379>smembers user2
1)"script-boy"
3.11、求集合user1对集合user的差集
127.0.0.1:6379>smembers user
1)"script-boy"
127.0.0.1:6379>smembers user1
1)"script-boy"
2) "xiaobei"
127.0.0.1:6379>sdiff user1 user
1) "xiaobei"
3.12、把集合user1对集合user的差集保存在user2
127.0.0.1:6379>sdiffstore user2 user1 user
(integer) 1
127.0.0.1:6379>smembers user2
1) "xiaobei"
版权声明:本文为博主原创文章,未经博主允许不得转载。
在乎的应该是沿途的风景以及看风景的心情。