2、redis-set【重点】
Java HashSet 无序,不重复。
Redis操作中,涉及到两个大数据集合的并集,交集,差集运算。
赋值:
l sadd key values[value1、value2…]:向set中添加数据,如果该key的值已有则不会重复添加
取值:
l smembers key:获取set中所有的成员
l sismember key member:判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)
删值:
l srem key members[member1、member2…]:删除set中指定的成员
l 集合运算:
差集运算:
l sdiff key1 key2…:返回key1与key2中相差的成员,而且与key的顺序有关。即返回差集。
(属于A并且不属于B的元素构成的集合)
交集运算:
l sinter key1 key2 key3…:返回交集。
(属于A且属于B的元素构成的集合)
并集运算:
l sunion key1 key2 key3…:返回并集。
(属于A或者属于B的元素构成的集合)
扩展命令:
l scard key:获取set中成员的数量
l srandmember key:随机返回set中的一个成员
3、redis-有序set(了解)
有序set集合:有序,不重复
小明,小红,小张
每个元素都需要手动赋予一个分数
5000 小明, 1000 小红 , 500 小张
集合中:500 小张
1000 小红
5000 小明
集合倒序:
5000 小明
1000 小红
500 小张
有序set集合,专门用来做排行榜
赋值:
l zadd key score member score2 member2 … :将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。
查看:
l zscore key member:返回指定成员的分数
l zrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数。(分数由小到大排列)
l zrevrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数。(分数由大到小排列)
删值:
l zrem key member[member…]:移除集合中指定的成员,可以指定多个成员。