ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-11-15 22:58:36  阅读:134  来源: 互联网

标签:... Set 元素 数据类型 member score key 集合


文章目录


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、应用场景

热点新闻、歌曲点击量

标签:...,Set,元素,数据类型,member,score,key,集合
来源: https://blog.csdn.net/qq_41464008/article/details/121344501

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有