码迷,mamicode.com
首页 > 其他好文 > 详细

Redis学习笔记(五)- 数据类型之set类型

时间:2016-07-15 00:25:17      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

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

  set相关命令:

  sadd key member 添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0

  scard key 返回set的元素个数,如果set是空或者key不存在返回0

  smembers key 返回key对应set的所有元素,结果是无序的

  sismember key member 判断member是否在set中,存在返回1,0表示不存在或者key不存在

  srandmember key 同spop,随机取set中的一个元素,但是不删除元素

  技术分享

  spop key 删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回nil

  srem key member 从key对应set中移除给定元素,成功返回1,如果member在集合中不存在或者key不存在返回0

  技术分享

  smove srckey dstkey member 从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set类型返回错误

  技术分享

  技术分享

Redis学习笔记(五)- 数据类型之set类型

标签:

原文地址:http://www.cnblogs.com/leny/p/5672001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!