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               //不存在

  • 应用场景

  1. 微博点赞
  2. 签到
  3. 打卡
  4. 商品标签

思路:以一条微博,签到的记录(可能是一张纸),打卡的记录(也可能是一张纸)作为set 的key  例如:weibo

  1. 如果这个微博被别人点赞了,就使用  sadd weibo user1 user2 加入这个集合
  2. 使用srem weibo user1 user2 取消点赞
  3. 判断这个人是否点赞:sismembers weibo user1 user2
  4. 点赞的所有用户列表: smembers weibo
  5. 点赞的总数: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"
  • 应用场景

  1. 商品筛选
  2. 用户关注  互相关注  可能认识的人
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值