Redis数据类型Set(集合)
Redis的集合使用无序的方式存储各个不相同的元素,用户可以快速地对集合执行添加元素,移除元素,检查一个元素是否存在等操作。
常用命令
SADD
SADD key-name item [item …] 将一个或多个元素添加到集合里面,并返回成功添加的元素数量
例如:
127.0.0.1:6379> sadd s1 1 2 3
(integer) 3
127.0.0.1:6379> sadd s1 1
(integer) 0
SREM
SREM key-name item [item …] 从集合中移除一个或多个元素,并返回被移除元素的数量
例如:
127.0.0.1:6379> srem s1 1 2
(integer) 2
SISMEMBER
SISMEMBER key-name item 检查元素是否存在于集合key-name中
例如:
127.0.0.1:6379> sismember s1 1
(integer) 0
127.0.0.1:6379> sismember s1 3
(integer) 1
SCARD
SCARD key-name 返回集合key-name元素数量
例如:
127.0.0.1:6379> scard s1
(integer) 1
SMEMBERS
SMEMBERS key-name 返回集合key-name包含的所有元素
例如:
127.0.0.1:6379> smembers s1
1) "3"
SRANDMEMBER
SRANDMEMBER key-name [count] 从集合中随机返回一个或多个元素,当count为正数时,命令返回的随机数不会重复,当count为负数时,命令返回的随机数元素可能会重复
例如:
127.0.0.1:6379> sadd s1 4 5 6 7 8 9 10
(integer) 7
127.0.0.1:6379> srandmember s1 2
1) "10"
2) "8"
127.0.0.1:6379> srandmember s1 -2
1) "8"
2) "7"
SPOP
SPOP key-name 随机移除集合中的一个元素,并返回移除的元素
例如:
127.0.0.1:6379> spop s1
"3"
127.0.0.1:6379> spop s1
"7"
127.0.0.1:6379> smembers s1
1) "4"
2) "5"
3) "6"
4) "8"
5) "9"
6) "10"
SMOVE
SMOVE source-key dest-key item 将集合source-key中的元素item移动到集合dest-key中,如果移除成功返回1,否则为0(source-key删除item,dest-key添加item)
例如:
127.0.0.1:6379> smove s1 s2 4
(integer) 1
127.0.0.1:6379> smembers s1
1) "5"
2) "6"
3) "8"
4) "9"
5) "10"
127.0.0.1:6379> smembers s2
1) "4"
SDIFF
SDIFF key-name [key-name …]返回存在于第一个集合但不存在于其他集合的元素(差集)
例如:
127.0.0.1:6379> sdiff s1 s2
1) "5"
2) "6"
3) "8"
4) "9"
5) "10"
SDIFFSTORE
SDIFFSTORE dest-key key-name [key-name …]将存在于第一个集合但不存在于其他集合的元素(差集)存储到集合dest-key中
例如:
sdiffstore s3 s1 s2
(integer) 5
127.0.0.1:6379> smembers s3
1) "5"
2) "6"
3) "8"
4) "9"
5) "10"
SINTER
SINTER key-name [key-name …]返回同时存在于集合1,2,…中的元素(交集)
例如:
sinter s1 s3
1) "5"
2) "6"
3) "8"
4) "9"
5) "10"
SINTERSTORE
SINTERSTORE dest-key key-name [key-name …]将同时存在于集合1,2,…中的元素(交集)存储到集合dest-key中
例如:
127.0.0.1:6379> sinterstore s4 s1 s3
(integer) 5
SUNION
SUNION key-name [key-name …]返回集合1,2,…中的所有元素(并集)
例如:
127.0.0.1:6379> sunion s1 s2
1) "4"
2) "5"
3) "6"
4) "8"
5) "9"
6) "10"
SUNIONSTORE
SUNIONSTORE dest-key key-name [key-name …]将集合1,2,…中的所有元素(并集)存储到集合dest-key中
例如:
127.0.0.1:6379> sunionstore s5 s1 s2