Redis五大数据类型-Set(集合)
set中的值是不可以重读的!无序不重复集合,可以实现抽随机!
47.107.74.202:9807> sadd myset hello # set集合中添加元素
(integer) 1
47.107.74.202:9807> sadd myset wangjun
(integer) 1
47.107.74.202:9807> sadd myset 你好
(integer) 1
47.107.74.202:9807> SMEMBERS myset # 查看set集合中的所有值
1) "hello"
2) "wangjun"
3) "\xe4\xbd\xa0\xe5\xa5\xbd"
47.107.74.202:9807> SREM myset 你好 # 移除set中的某个元素
(integer) 1
47.107.74.202:9807> SMEMBERS myset
1) "hello"
2) "wangjun"
47.107.74.202:9807> SISMEMBER myset hello # 判断某个元素是否存在于set集合中 存在返回 1 不存在返回 0
(integer) 1
47.107.74.202:9807> SISMEMBER myset hellowangjun
(integer) 0
-----------------------------------------------------------------
SCARD 查看set集合中有几个元素
47.107.74.202:9807> SCARD myset
(integer) 2
47.107.74.202:9807> sadd myset wj2y
(integer) 1
47.107.74.202:9807> SCARD myset
(integer) 3
47.107.74.202:9807> SMEMBERS myset
1) "hello"
2) "wangjun"
3) "wj2y"
-----------------------------------------------------------------
SRANDMEMBER 随机抽出set集合中的元素
47.107.74.202:9807> SRANDMEMBER myset
"wj2y"
47.107.74.202:9807> SRANDMEMBER myset
"wangjun"
47.107.74.202:9807> SRANDMEMBER myset
"wangjun"
47.107.74.202:9807> SRANDMEMBER myset
"hello"
47.107.74.202:9807> SRANDMEMBER myset 2 # 随机抽选出两个元素
1) "wangjun"
2) "wj2y"
47.107.74.202:9807> SRANDMEMBER myset 2
1) "hello"
2) "wangjun"
-----------------------------------------------------------------
删除指定的key,随机删除元素
47.107.74.202:9807> SMEMBERS myset
1) "hello"
2) "wangjun"
3) "wj2y"
47.107.74.202:9807> SPOP myset # 随机删除一些set集合中的元素 后面可以指定数量
"wangjun"
47.107.74.202:9807> SMEMBERS myset
1) "hello"
2) "wj2y"
-----------------------------------------------------------------
SMOVE 将指定set集合的元素,移动到另外一个set集合中!
47.107.74.202:9807> sadd myset hello
(integer) 1
47.107.74.202:9807> sadd myset wangjun
(integer) 1
47.107.74.202:9807> sadd myset wj2y
(integer) 1
47.107.74.202:9807> sadd myset2 hello2
(integer) 1
47.107.74.202:9807> SMOVE myset myset2 wj2y # 将指定set集合的元素,移动到另外一个set集合中!
(integer) 1
47.107.74.202:9807> SMEMBERS myset
1) "hello"
2) "wangjun"
47.107.74.202:9807> SMEMBERS myset2
1) "hello2"
2) "wj2y"
-----------------------------------------------------------------
微博,B站,共同关注!(交集)
数字集合类:
1、差集 SDIFF
2、交集 SINTER
3、并集 SUNION
47.107.74.202:9807> sadd key1 a
(integer) 1
47.107.74.202:9807> sadd key1 b
(integer) 1
47.107.74.202:9807> sadd key1 c
(integer) 1
47.107.74.202:9807> sadd key2 c
(integer) 1
47.107.74.202:9807> sadd key2 d
(integer) 1
47.107.74.202:9807> sadd key2 e
(integer) 1
47.107.74.202:9807> SDIFF key1 key2 # 差集
1) "a"
2) "b"
47.107.74.202:9807> SINTER key1 key2 # 交集 共同好友就可以这样实现
1) "c"
47.107.74.202:9807> SUNION key1 key2 # 并集
1) "a"
2) "b"
3) "c"
4) "e"
5) "d"
微博,A用户将所有关注的人放在一个set集合中!将它的粉丝也放在一个集合中!
共同关注 共同爱好 同理!
版权申明
本文系作者 @WangJun 原创发布在wangjun's blog站点。未经许可,禁止转载。
暂无评论数据