redis set/zset类型学习

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"

版权声明:本文为博主原创文章,未经博主允许不得转载。

在乎的应该是沿途的风景以及看风景的心情。

redis set/zset类型学习

相关文章:

你感兴趣的文章:

标签云: