Set of data structures of Redis

Store Set

 Unlike the List type, duplicate elements are not allowed in the Set collection

 The maximum number of elements a Set can contain is 4294967295

Common commands for storage set:

add/remove elements

get the elements in the collection

Difference operations in sets

Intersection operation in sets

Union operator in sets

extended command


sadd key member [member ...]

add set element

127.0.0.1:6379> sadd set1  a b c

(integer) 3

add three elements

smembers key

View the specified key set element

127.0.0.1:6379> smembers set1

1) "c"

2) "b"

3) "a"


127.0.0.1:6379> sadd set1 a d e

(integer) 2

127.0.0.1:6379> smembers set1

1) "c"

2) "d"

3) "b"

4) "a"

5) "e"

Continue to add elements and find that duplicate elements are no longer added


srem key member [member ...]

remove element

127.0.0.1:6379> srem set1 a d

(integer) 2

127.0.0.1:6379> smembers set1

1) "b"

2) "c"

3) "e"

delete two elements


sismember key member

To determine whether an element exists, return 1 to indicate that it exists and return 0 to indicate that it does not exist

127.0.0.1:6379> sismember set1 a

(integer) 0

127.0.0.1:6379> sismember set1 b

(integer) 1


sdiff calculates the difference

127.0.0.1:6379> sadd set2 a b c

(integer) 3

127.0.0.1:6379> sadd set3 b c d e

(integer) 4

127.0.0.1:6379> sdiff set2 set3

1) "a"

127.0.0.1:6379> sdiff set3 set2

1) "d"

2) "e"

我们发现 集合的顺序不同 结果不一样 根据前者参考


sinter计算交集

127.0.0.1:6379> sinter set2 set3

1) "c"

2) "b"


sunion计算并集

127.0.0.1:6379> sunion set2 set3

1) "e"

2) "a"

3) "b"

4) "c"

5) "d"


scard计算元素总数

127.0.0.1:6379> smembers set1

1) "b"

2) "c"

3) "e"

127.0.0.1:6379> scard set1

(integer) 3


srandmember 随机取一个元素

127.0.0.1:6379> srandmember set1

"c"

127.0.0.1:6379> srandmember set1

"e"


sdiffstore 把差集结果存储到新集合中

127.0.0.1:6379> smembers set2

1) "c"

2) "b"

3) "a"

127.0.0.1:6379> smembers set3

1) "c"

2) "e"

3) "d"

4) "b"

127.0.0.1:6379> sdiffstore r1 set2 set3

(integer) 1

127.0.0.1:6379> smembers r1

1) "a"


sinterstore 把交集结果存储到新集合中

127.0.0.1:6379> sinterstore r2 set2 set3

(integer) 2

127.0.0.1:6379> smembers r2

1) "c"

2) "b"


sunionstore把并集结果存储到新集合中

127.0.0.1:6379> sunionstore r3 set2 set3

(integer) 5

127.0.0.1:6379> smembers r3

1) "e"

2) "a"

3) "b"

4) "c"

5) "d"


存储Set使用场景

 跟踪一些唯一性数据

 用于维护数据对象之间的关联关系


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325965009&siteId=291194637