redis数据类型(五)set类型

一、 set类型

set是无序集合,最大可以包含(2 的 32 次方-1)个元素。
set 的是通过 hash table 实现的,所以添加,删除,查找的复杂度都是 O(1)。
hash table 会随着添加或者删除自动的调整大小。需要注意的是调整 hash table 大小时候需要同步(获取写锁)会阻塞其他读写操作。可能不久后就会改用跳表(skip list)来实现。跳表已经在 sorted sets 中使用了。
关于 set 集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。
通过这些操作可以很容易的实现 SNS 中的好友推荐和 blog 的 tag 功能。

二、set类型数据操作指令简介

  1. sadd key member   添加一个string元素到key对应set集合中,成功返回1,如果元素已经在集合中则返回0,key对应的set不存在则返回错误。
    RzWwJ5x.png
  2. srem key member  从key对应set中移除指定元素,成功返回1,如果member在集合中不存在或者key不存在返回0,如果key对应的不是set类型的值返回错误。
    LXzAqIp.png
  3. spop key  删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回空串。
    c2ab8Zw.png
  4. srandmember key 同spop,随机取set中的一个元素,但是不删除元素。
    ffKwYRo.png
  5. smove srckey dstkey member  从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set 类型返回错误。
    kSaYPsA.png
  6. scard key 返回set的元素个数,如果set是空或者key不存在返回0。
    iPn1IXs.png
  7. sismember key member  判断member是否在set中,存在返回1,0表示不存在或者key不存在。
    8LmM9Je.png
  8. sinter key1 key2 …… keyN  返回所有给定key的交集。
    i5xTk2m.png
  9. sinterstore dstkey key1 ....... keyN  返回所有给定key的交集,并保存交集存到dstkey下。
    fEH7Jei.png
  10. sunion key1 key2 ...... keyN  返回所有给定key的并集。
    xHI3gYr.png
  11. sunionstore dstkey key1 ...... keyN  返回所有给定key的并集,并保存并集到dstkey下。
    XYl9yXE.png
  12. sdiff key1 key2 ...... keyN  返回所有给定key的差集。
    oBAeXF2.png
  13. sdiffstore dstkey key1 ...... keyN  返回所有给定key的差集,并保存差集到dstkey下。
    sVrMJzd.png
  14. smembers key  返回key对应set的所有元素,结果是无序的。
    kglXYss.png

转载于:https://www.cnblogs.com/jack1995/p/7507243.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值