文章目录
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、应用场景
热点新闻、歌曲点击量