Redis基本类型之Set类型
一、概述
1、简介
- Redis的Set结构与Java中的HashSet类似,可以看做一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet类似的特征。
2、特征
二、Set类型的常见命令
命令 | 作用 |
---|
sadd | 向set中添加一个或多个元素 |
srem | 移除set中的指定元素 |
scard | 返回set中元素的个数 |
sismember | 判断一个元素是否存在于set中 |
smembers | 获取set中的所有元素 |
sinter | 求key1与key2的交集 |
sdiff | 求key1与key2的差集 |
sunion | 求key1和key2的并集 |
三、操作案例
1、单个集合操作
1.1、sadd(添加一个或多个)
192.168.246.128:6379> SADD sgz a b c
(integer) 3
1.2、srem(移除一个或多个)
192.168.246.128:6379> SREM sgz a
(integer) 1
1.3、scard(获取元素个数)
192.168.246.128:6379> SCARD sgz
(integer) 2
1.4、sismember(判断元素是否存在)
- sismember:判断一个元素是否存在于set中
192.168.246.128:6379> SISMEMBER sgz a
(integer) 0
192.168.246.128:6379> SISMEMBER sgz b
(integer) 1
1.5、smembers(获取所有元素)
192.168.246.128:6379> SMEMBERS sgz
1) "c"
2) "b"
2、多个集合操作
2.1、张三的好友有:李四、王五、赵六(sadd)
192.168.8.137:6379> SADD zs lisi wangwu zhaoliu
(integer) 3
2.2、李四的好友有:王五、麻子、二狗(sadd)
192.168.8.137:6379> SADD ls wangwu mazi ergou
(integer) 3
2.3、计算张三的好友有几人(scard)
192.168.8.137:6379> SCARD zs
(integer) 3
2.4、计算张三和李四有哪些共同好友(sinter)
192.168.8.137:6379> SINTER zs ls
1) "wangwu"
2.5、查询哪些人是张三的好友却不是李四的好友(sdiff)
192.168.8.137:6379> SDIFF zs ls
1) "lisi"
2) "zhaoliu"
2.6、查询张三和李四的好友总共有哪些人(sunion)
192.168.8.137:6379> SUNION zs ls
1) "lisi"
2) "zhaoliu"
3) "wangwu"
4) "mazi"
5) "ergou"
2.7、判断李四是否是张三的好友(sismember)
192.168.8.137:6379> SISMEMBER zs lisi
(integer) 1
2.8、判断张三是否是李四的好友(sismember)
192.168.8.137:6379> SISMEMBER lisi zs
(integer) 0
2.9、将李四从张三的好友列表中移除(srem)
192.168.8.137:6379> SREM zs lisi
(integer) 1