一、 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不存在则返回错误。
  2. srem key member  从key对应set中移除指定元素,成功返回1,如果member在集合中不存在或者key不存在返回0,如果key对应的不是set类型的值返回错误。
  3. spop key  删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回空串。
  4. srandmember key 同spop,随机取set中的一个元素,但是不删除元素。
  5. smove srckey dstkey member  从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set 类型返回错误。
  6. scard key 返回set的元素个数,如果set是空或者key不存在返回0。
  7. sismember key member  判断member是否在set中,存在返回1,0表示不存在或者key不存在。
  8. sinter key1 key2 …… keyN  返回所有给定key的交集。
  9. sinterstore dstkey key1 ....... keyN  返回所有给定key的交集,并保存交集存到dstkey下。
  10. sunion key1 key2 ...... keyN  返回所有给定key的并集。
  11. sunionstore dstkey key1 ...... keyN  返回所有给定key的并集,并保存并集到dstkey下。
  12. sdiff key1 key2 ...... keyN  返回所有给定key的差集。
  13. sdiffstore dstkey key1 ...... keyN  返回所有给定key的差集,并保存差集到dstkey下。
  14. smembers key  返回key对应set的所有元素,结果是无序的。

redis数据类型(五)set类型的更多相关文章

  1. redis数据类型-散列类型

    Redis数据类型 散列类型 Redis是采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他 ...

  2. Jedis操作笔记 redis的五种存储类型

    常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个val ...

  3. c# 操作Redis的五种基本类型总结

    在我们的项目中,通常会把数据存储到关系型数据库中,比如Oracle,SQL Server,Mysql等,但是关系型数据库对于并发的支持并不是很强大,这样就会造成系统的性能不佳,而且存储的数据多为结构化 ...

  4. 【快速掌握】Redis 的五种数据类型

    不同于MySQL的表结构所带来的复杂语句,Redis只需要维护好它的[key-value]结构就可以,因此相比于MySQL,语句非常简单. 今天介绍一下Redis 五种常用的数据类型: 这五种数据类型 ...

  5. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

  6. Redis的五种数据类型的简单介绍和使用

    1.准备工作: 1.1在Linux下安装Redis  https://www.cnblogs.com/dddyyy/p/9763098.html 1.2启动Redis 先把root/redis的red ...

  7. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

  8. redis的五种存储类型的具体用法

    String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-> ...

  9. Redis: Redis支持五种数据类型

    ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...

  10. Redis的数据类型以及各类型的操作

    讲完安装和配置,接下来就是所有数据库的重头戏,数据结构和常用操作的增删改查了 redis是key-value的数据结构,每条数据都是⼀个键值对 键的类型是字符串 注意:键不能重复 值的类型分为五种: ...

随机推荐

  1. xaml mvvm(2)之属性绑定

    通过微软INotifyPropertyChanged接口,可以实现对UI实时更新,不管是数据源或者目标对象,可以实现相互通知. 下面我们根据INotifyPropertyChanged编写一个扩展类. ...

  2. Rest-assured 写日志到 log4j

    背景: 采用Rest-assured,日志采用log4j,发现Rest-assured本身只支持打印日志到控制台,但期望打印到文件中以便排查问题 请求打印的语句只能输出到控制台 given().log ...

  3. 如何在TortoiseGit中使用ssh-keygen生成的key

    再windows 用TortoiseGit 时,git clone 项目时 提示 "Couldn't load this key (OpenSSH SSH-2 private key),如下 ...

  4. Solr(一) 安装部署环境

    Solr运行环境 第一步:安装java jdk 第二步:安装tomcat服务器 安装过程:参考http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4 ...

  5. ASP.NET Core学习总结(2)

    public class ControllerActionInvoker : ResourceInvoker, IActionInvoker 我们知道,ControllerActionInvoker实 ...

  6. Vue前端数据采集 埋点 追踪用户系列行为

    什么是埋点?  综合    vue埋点 埋点分析,是网站分析的一种常用的数据采集方法.数据埋点分为初级.中级.高级三种方式.数据埋点是一种良好的私有化部署数据采集方式. 埋点技术如何采集数据,有何优缺 ...

  7. Android Preferences: How to load the default values when the user hasn't used the preferences-screen?

    在启动 preferences 之前,默认值并不能生效.第一次运行程序时候,默认值没生效,然后获取的 preferences 的值就是错误的. 解决办法是在程序开始时加一行代码使默认值生效. Pref ...

  8. 配置DNS服务器转发器

    1.(windows server 2008 r2)控制面板->管理工具->服务器管理器->DNS->服务器图标->属性 2.转发器->编辑 3.填写DNS并点击确 ...

  9. 面向对象之-@classmethod、@staticmethod和@classonlymethod的区别

    实例方法.静态方法与类方法的含义 实例方法(普通方法)的含义就是需要类对象实例之后才能调用的方法,该方法的基本格式为: def test(self,*args,**kwargs): # 第一个参数必须 ...

  10. shell实战之case语句的选择提示

    知识点包括:case语句,cat多行输入,break和exit的区别,wget断点续传,while中断条件写法,函数的使用方法 #!/bin/bash echo "\n1. 本机容器情况如下 ...