Redis 的 Set 是 String 类型的无序集合,元素不允许重复。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的元素数为 232 - 1 (40多亿)。

1、sadd  key  value1  value2 ......    //向集合中添加一个或多个元素。sadd即set add,key是集合的名称。返回此次添加的元素个数。

2、scard  key   //返回集合的元素个数

3、smembers  key   //返回集合中所有的元素

4、sismember  key  elementValue   //判断该集合中是否有elementValue这个元素。有返回1,没有或者key不存在则返回0.

5、spop  key    //随机移除并返回集合中的一个元素

6、srandmember  key    //随机返回集合中的一个元素,并不移除该元素。srandmember即set random  member.

可带一个可选参数:srandmember  key  count    //count是一个整数,指定返回的元素个数。

count>0:随机返回count个元素,这些元素互不相同。随机确定一个返回的元素后,再从剩余的元素中随机。

count<0:随机返回count的绝对值个元素,这些元素可能相同。每次都是从整个集合中随机一个。

count的绝对值大于等于集合的元素个数时,返回集合中所有的元素。

7、srem  key  value1  value2 ....    //移除集合中的一个或多个元素,若集合中没有该元素,会忽略该元素。

8、smove  sourceKey  destKey  elementValue   //将元素从一个集合移动到另一个集合。(剪切)

9、sscan key  cursor   match  pattern  count  num    //迭代集合中的元素。cursor指定对每元素的操作。

2个可选参数:

  • match  pattern   指定配置模式,只迭代符合pattern的元素
  • count  num    指定要迭代的元素个数

10、sinter  key1  key2  ....     //返回这些集合的交集

11、sinterstore  destKey  key1  key2  .....     //多了store,求key1、key2.....这些集合的交集,并将交集中的元素存储在destKey集合中,返回交集中的元素个数

相同用法的还有:

  • sunion   并集
  • sdiff  差集

Redis set(集合)的更多相关文章

  1. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  2. redis 有序集合(zset)函数

    redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...

  3. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  4. Redis有序集合

    Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...

  5. Redis 操作集合数据

    Redis 操作集合数据: > sadd set1 Tom // sadd 用于往集合中添加元素 (integer) > sadd set1 John (integer) > sad ...

  6. Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  7. redis有序集合的使用

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  8. redis有序集合数据类型---sortedset

    一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...

  9. 数据结构与算法简记--redis有序集合实现-跳跃表

    跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...

  10. 基于redis有序集合,实现简单的延时任务

    基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...

随机推荐

  1. AGC600 C Rabbit Exercise —— 置换

    题目:https://agc006.contest.atcoder.jp/tasks/agc006_c 考虑 \( i \) 号兔子移动后位置的期望,是 \( x_{i+1} + x_{i-1} - ...

  2. C++的函数重载与C参数个数不一致时的编译

    C++的函数重载意味着函数名和返回值类型相同,但是参数个数和/或类型不同.在编译过程中编译器一般会把各个参数的类型连接到函数名内组成新的函数名,以区分各个重载函数. C语言不支持函数重载.但是有时候虽 ...

  3. 使用superobject 新建Json数据(数组)

    1. 要得到的Json数据:[{"name":"张三","age": 17},{"name":"李四" ...

  4. JIRA 破解文件研究(Win 7环境)

    最近再次回来研究 Win 7 下的 JIRA,按网上的很多方法去尝试,竟然无法正常安装! 经过几次的弯路尝试,终究还是成功了. 嗯,有必要总结一下: 发觉网上的很多破解方法都太老!不管是什么原因,在6 ...

  5. [poj1144]Network(求割点模板)

    解题关键:割点模板题. #include<cstdio> #include<cstring> #include<vector> #include<stack& ...

  6. 2014年第五届蓝桥杯国赛 Log大侠(区间合并+Java递归效率分析)

    1678: Log大侠 java 时间限制: 2 Sec  内存限制: 256 MB提交: 20  解决: 1 题目描述     atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称L ...

  7. gridview把textbox的值修改还是旧值的解决方法

    解决方法很简单,加上if(!IsPostBack) 就OK了,因为之前加载之前都会调用InitData(). protected void Page_Load(object sender, Event ...

  8. 讨论:研发团队到底应该是制定OKR还是制定KPI?

    在讨论之前我们先来了解两个概念: 一.KPI KPI是一套绩效管理的方法.全称为:Key Performance Indicator.中文叫:关键绩效指标. KPI,和我们的“任务分解”不同.任务分解 ...

  9. 模板 - SPFA

    SPFA可以用来判断负环或者计算带负权的最短路. 其实带负权的最短路可以用带势Dijkstra计算-- 所以SPFA基本就拿来判负环了-- #include<bits/stdc++.h> ...

  10. 有线电视网(树形dp)

    有线电视网 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点.从转播站到转播站以及从 ...