redis常用五种数据类型----set类型的基本操作
set无序列表
基本操作
127.0.0.1:6379> sadd myset a b c d e f g //向myset集合中添加这些元素 返回数量
(integer) 7
127.0.0.1:6379> smembers myset //查看所有的元素
1) “a”
2) “b”
3) “c”
4) “d”
5) “f”
6) “g”
7) “e”
127.0.0.1:6379> scard myset //查看myset集合的元素总数
(integer) 7
127.0.0.1:6379> srandmember key
(nil)
127.0.0.1:6379> srandmember myset //随机从myset集合中获取一个元素但是不删除原有的元素 可以用作抽奖功能
“e”
127.0.0.1:6379> smembers myset
1) “a”
2) “b”
3) “c”
4) “d”
5) “f”
6) “g”
7) “e”
127.0.0.1:6379> spop myset //随机从myset集合中获取一个元素,删除原有的元素 可以用作抽奖功能
“b”
127.0.0.1:6379> smembers myset
1) “a”
2) “c”
3) “d”
4) “f”
5) “g”
6) “e”
127.0.0.1:6379> srem myset d f //删除指定的元素
(integer) 2
127.0.0.1:6379> smembers myset
1) “a”
2) “c”
3) “g”
4) “e”
127.0.0.1:6379> sismember myset a //判断‘a’ 是否在这个set中存在
(integer) 1 //存在
127.0.0.1:6379> sismember myset 1
(integer) 0 //不存在应用场景
- 微博点赞
- 签到
- 打卡
- 商品标签
思路:以一条微博,签到的记录(可能是一张纸),打卡的记录(也可能是一张纸)作为set 的key 例如:weibo
- 如果这个微博被别人点赞了,就使用 sadd weibo user1 user2 加入这个集合
- 使用srem weibo user1 user2 取消点赞
- 判断这个人是否点赞:sismembers weibo user1 user2
- 点赞的所有用户列表: smembers weibo
- 点赞的总数:scard myset
其他的同理
差集,交集,并集
127.0.0.1:6379> sadd set1 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> sadd set2 5 6 7 8 9 0
(integer) 6
127.0.0.1:6379> sdiff set1 set2 //set1 对 set2 取差集 set2不变
1) “1”
2) “2”
3) “3”
4) “4”
127.0.0.1:6379> sdiff set2 set1 //set2 对 set1 取差集 set2不变
1) “0”
2) “7”
3) “8”
4) “9”
127.0.0.1:6379> sinter set1 set2 //交集
1) “5”
2) “6”
127.0.0.1:6379> sunion set1 set2 //并集
1) “0”
2) “1”
3) “2”
4) “3”
5) “4”
6) “5”
7) “6”
8) “7”
9) “8”
10) “9”应用场景
- 商品筛选
- 用户关注 互相关注 可能认识的人
还没有评论,来说两句吧...