day39 redis 数据类型 Set集合、SortedSet有序集合

文章目录


I know, i know
地球另一端有你陪我




四、Set 集合

	无序的、去重的
	元素是字符串类型
	最多包含2^32-1元素

1、增

增加一个或多个元素

	SADD key member [member ...]		如果元素已经存在,则自动忽略

2、删

1、移除一个或者多个元素

	SREM key member [member ...]		元素不存在,自动忽略

2、随机从集合中移除并返回这个被移除的元素

	SPOP key

3、把元素从源集合移动到目标集合

	SMOVE source destination member

	smove fgh newfgh 1

3、查

1、返回集合包含的所有元素
(如果集合元素过多,如百万个,需要遍历,可能会造成服务器阻塞,生产环境应避免使用)

	SMEMBERS key

2、检查给定元素是否存在于集合中

	SISMEMBER key member

3、随机返回集合中指定个数的值

	SRANDMEMBER key [count]
	1、如果 count 为正数,且小于集合基数,
	   那么命令返回一个包含 count 个元素的数组,数组中的元素不重复
	2、如果 count 大于等于集合基数,那么返回整个集合
	3、如果 count 为负数,那么命令返回一个数组,
       数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值

4、返回集合中元素的个数

	SCARD key

4、集合操作

1、差集

	SDIFF key [key ...]		
	从第一个key的集合中去除其他集合和自己的交集部分
	
	SDIFFSTORE destination key [key ...]		
	将差集结果存储在目标key中

	sdiffstore newfgh fgh1 fgh2

2、交集

	SINTER key [key ...]
	取所有集合交集部分

	SINTERSTORE destination key [key ...]
	将交集结果存储在目标key中

	sinterstore newfgh fgh1 fgh2

3、并集

	SUNION key [key ...]
	取所有集合并集
	
	SUNIONSTORE destination key [key ...]
	将并集结果存储在目标key中

	sunionstore newfgh fgh1 fgh2

4.1 应用场景

共同关注、共同好友


五、SortedSet 有序集合

	类似Set集合
	有序的、去重的
	元素是字符串类型
	每一个元素都关联着一个浮点数分值(Score),
	并按照分值从小到大的顺序排列集合中的元素,分值可以相同
	最多包含2^32-1元素

1、增

增加一个或多个元素

	ZADD key score member [score member ...]
	如果元素已经存在,则使用新的score

2、删

1、移除指定一个或者多个元素

	ZREM key member [member ...]
	元素不存在,自动忽略

2、移除指定索引范围的元素

	ZREMRANGEBYRANK key start stop

3、移除指定分值范围的元素

	ZREMRANGEBYSCORE key min max

3、改

增加或者减少分值

	ZINCRBY key increment member
	increment为负数就是减少

	zincrby fgh -5 a

4、查

1、显示分值

	ZSCORE key member

2、返回元素的排名(索引)

	ZRANK key member

3、返回元素的逆序排名

	ZREVRANK key member

4、返回指定索引区间元素

	ZRANGE key start stop

	zrange fgh -2 -1
	取最后两个元素

5、返回逆序后指定索引区间元素

	ZREVRANGE key start stop

	zrevrange fgh -2 -1
	返回逆序后,最后个元素

6、返回指定分值区间元素

	ZRANGEBYSCORE key min max

	zrangebyscore fgh -inf +inf
	-inf和+inf表示负无穷和正无穷

7、返回逆序后指定指定分值区间元素

	ZREVRANGEBYSCORE key max min
	
	zrevrangebyscore fgh 3 2
	返回逆序后,score 范围内的元素

8、返回集合中元素个数

	ZCARD key

9、返回指定分值范围中元素的个数

	ZCOUNT key min max

5、集合操作

1、并集

	ZUNIONSTORE destination numkeys key [key ...] 
	[WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

	ZADD scores1 70 tom 80 peter 60 john
	ZADD scores2 90 peter 60 ben
	ZUNIONSTORE scores-all 2 scores1 scores2
	ZUNIONSTORE scores-all1 2 scores1 scores2 AGGREGATE SUM
	ZUNIONSTORE scores-all2 2 scores1 scores2 WEIGHTS 1 0.5 AGGREGATE SUM
	表一 x 1 + 表二 x 0.5
	numkeys 指定 key 的数量,必须
	WEIGHTS 选项,与前面设定的 key 对应,对应 key 中每一个 score 都要乘以这个权重
	AGGREGATE 选项,指定并集结果的聚合方式,默认是 SUM
	SUM:将所有集合中某一个元素的 score 值之和作为结果集中该成员的score值
	MIN:将所有集合中某一个元素的 score 值中最小值作为结果集中该成员的score值
	MAX:将所有集合中某一个元素的 score 值中最大值作为结果集中该成员的score值
	这里的 SUM、MIN、MAX 严格区分大小写

2、交集

	ZINTERSTORE destination numkeys key [key ...]
	[WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

同上

5、应用场景

热点新闻、歌曲点击量

上一篇:02序化构


下一篇:Redis五:操作命令汇总