zoukankan      html  css  js  c++  java
  • Redis学习笔记(五)- 数据类型之set类型

      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类型返回错误

      

      

  • 相关阅读:
    ASP.NET WebAPI Get和Post 传参总结
    关于EF第一次加载慢或过一段时间不访问时再次访问加载慢问题的总结
    jqthumb.js缩略图插件-让缩略图正常显示而不变形
    解决kindeditor编辑器中使用百度地图时不能拖动坐标的问题
    Jzoj3591 数据
    Jzoj3590 珠链
    Jzoj3590 珠链
    C++蜂鸣器歌曲1
    C++蜂鸣器歌曲1
    Jzoj2309 辽哥游戏
  • 原文地址:https://www.cnblogs.com/leny/p/5672001.html
Copyright © 2011-2022 走看看