目錄
一、Redis-Set特點
二、常用命令與交并差
三、Redis中Set類型應用場景
一、Redis-Set特點
1、無序:添加的是A,B,C;取出的可能是B,A,C
2、唯一:不允許元素重復
二、常用命令與交并差
格式 | 含義 | 例子 |
sadd key members[...] | 往key集合中添加一系列元素members | sadd mySet a b c d |
smembers key | 遍歷key集合中的所有元素 | smembers mySet |
srem key?members[...] | 刪除key集合中的一系列元素members | srem mySet a c |
spop key count | 從key集合中隨機彈出count個元素 | spop mySet 1 |
127.0.0.1:6379> sadd mySet a b c d
(integer) 4
127.0.0.1:6379> smembers mySet // 無序:輸出的順序并不一定是輸入的順序
1) "d"
2) "b"
3) "a"
4) "c"
127.0.0.1:6379> srem mySet a c
(integer) 2
127.0.0.1:6379> smembers mySet
1) "d"
2) "b"
127.0.0.1:6379> spop mySet 1
1) "b"
127.0.0.1:6379> smembers mySet
1) "d"
127.0.0.1:6379> sadd mySet d
(integer) 0 // 不能添加相同的元素
127.0.0.1:6379> smembers mySet
1) "d"
格式 | 含義 | 例子 |
sdiff key1 key2 | 返回key1中特有的元素【差集】 | sdiff set1 set2 |
sinter key1 key2 | 返回key1和key2共有的元素【交集】 | sinter set1 set2 |
sunion key1 key2 | 返回key1中的所有元素和key2中的所以元素(不重復)【并集】 | sunion set1 set2 |
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sdiff set1 set2
1) "a"
2) "b"
127.0.0.1:6379> sinter set1 set2
1) "d"
2) "c"
127.0.0.1:6379> sunion set1 set2
1) "d"
2) "c"
3) "f"
4) "e"
5) "b"
6) "a"
三、Redis中Set類型應用場景
1、去重
2、抽獎 spop
3、共同好友 sinter