Set操作、Set集合就是不允许重复的列表


  (无序集合)

  • sadd(name,values)
  • # name对应的集合中添加元素
  • scard(name)
  • # 获取name对应的集合中元素个数
  • sdiff(keys, *args)
  • 在第一个name对应的集合中且不在其他name对应的集合的元素集合
  • sdiffstore(dest, keys, *args)
  • # 获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中
  • sinter(keys, *args)
  • # 获取多一个name对应集合的并集
  • sinterstore(dest, keys, *args)
  • # 获取多一个name对应集合的并集,再讲其加入到dest对应的集合中
  • sismember(name, value)
  • # 检查value是否是name对应的集合的成员
  • smembers(name)
  • # 获取name对应的集合的所有成员
  • smove(src, dst, value)
  • # 将某个成员从一个集合中移动到另外一个集合
  • spop(name)
  • # 从集合的右侧(尾部)移除一个成员,并将其返回
  • srandmember(name, numbers)
  • # 从name对应的集合中随机获取 numbers 个元素
  • srem(name, values)
  • # 在name对应的集合中删除某些值
  • sunion(keys, *args)
  • # 获取多一个name对应的集合的并集
  • sunionstore(dest,keys, *args)
  • # 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中
  • sscan(name, cursor=0, match=None, count=None)
  • sscan_iter(name, match=None, count=None)
  • # 同字符串的操作,用于增量迭代分批获取元素,避免内存消耗太大

  (有序集合)

  在集合的基础上,为每元素排序;元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。

  • zadd(name, *args, **kwargs)
  • # 在name对应的有序集合中添加元素
  • # 如:
    # zadd('zz', 'n1', , 'n2', )
    # 或
    # zadd('zz', n1=, n2=)
  • zcard(name)
  • # 获取name对应的有序集合元素的数量
  • zcount(name, min, max)
  • # 获取name对应的有序集合中分数 在 [min,max] 之间的个数
  • zincrby(name, value, amount)
  • # 自增name对应的有序集合的 name 对应的分数
  • r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)
  • # 按照索引范围获取name对应的有序集合的元素
  • # 参数:
    # name,redis的name
    # start,有序集合索引起始位置(非分数)
    # end,有序集合索引结束位置(非分数)
    # desc,排序规则,默认按照分数从小到大排序
    # withscores,是否获取元素的分数,默认只获取元素的值
    # score_cast_func,对分数进行数据转换的函数 # 更多:
    # 从大到小排序
    # zrevrange(name, start, end, withscores=False, score_cast_func=float) # 按照分数范围获取name对应的有序集合的元素
    # zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float)
    # 从大到小排序
    # zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float)
  • zrank(name, value)
  • # 获取某个值在 name对应的有序集合中的排行(从 0 开始)
  • # 更多:
    # zrevrank(name, value),从大到小排序
  • zrem(name, values)
  • # 删除name对应的有序集合中值是values的成员
  • # 如:zrem('zz', ['s1', 's2'])
  • zremrangebyrank(name, min, max)
  • # 根据排行范围删除
  • zremrangebyscore(name, min, max)
  • # 根据分数范围删除
  • zscore(name, value)
  • # 获取name对应有序集合中 value 对应的分数
  • zinterstore(dest, keys, aggregate=None)
  • # 获取两个有序集合的交集,如果遇到相同值不同分数,则按照aggregate进行操作
  • # aggregate的值为:  SUM  MIN  MAX
  • zunionstore(dest, keys, aggregate=None)
  • # 获取两个有序集合的并集,如果遇到相同值不同分数,则按照aggregate进行操作
  • # aggregate的值为:  SUM  MIN  MAX
  • zscan(name, cursor=0, match=None, count=None, score_cast_func=float)
  • zscan_iter(name, match=None, count=None,score_cast_func=float)
  • # 同字符串相似,相较于字符串新增score_cast_func,用来对分数进行操作

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. 删除链表的中间节点和a/b处的节点

    问题描述: 删除链表的中间节点和a/b处的节点 给定链表的头结点head,实现删除链表的中间节点的函数: 例如: 不删除任何节点: 1-->2,删除节点1: 1-->2-->3,删除 ...

  2. bootstrap table使用colResizable后表格不能自适应

    窗口缩小放大后,b表格不能自适应,table加了宽度没效果,求教

  3. 并发—JVM内部机制和外部机制处理方法

    并发常见的编程场景,一句话概括就是,需要协调多个线程之间的协作,已保证程序按照自己原本的意愿执行.那么究竟应该如何协调多个线程? 这个问题比较宽泛,一般情况下,我们按照方式的纬度去简单区分,有以下两种 ...

  4. centos下搭建python双版本环境

    目录 centos下搭建python双版本环境 一.安装python3 1.理清自带python位置 2.更新用于下载编译python3的相关包 3.安装pip 4.用pip安装wget 5.用wge ...

  5. FCC---Change Animation Timing with Keywords--两个小球从A都B,相同循环时间 duration, 不同的速度 speed

    In CSS animations, the animation-timing-function property controls how quickly an animated element c ...

  6. 查找字段的筛选-使用addCustomView

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复231或者20161031可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  7. RSA加密算法破解及原理

    - RSA算法原理 - - 加密与解密 在RSA中,Bob想给Alice发一个消息X,Alice公钥为(e,n),私钥为(n,d). 加密和解密的过程如下: - RSA暴力破解 RSA暴力破解,简单理 ...

  8. [转]Outlook VBA自动处理邮件

    本文转自:https://blog.csdn.net/hnwyllmm/article/details/44874331 需求描述公司里面每天都会有很多邮件,三分之一都是不需要看的,Outlook的过 ...

  9. form分辨率

    近期做项目时,遇到开发的winform在自己电脑上可以正常显示,共享到其他电脑就事儿不能显示了: [转载自:http://blog.csdn.net/lcawen88/article/details/ ...

  10. ES新提案:双问号操作符

    摘要: 简单实用的新特性. 原文:ES新提案:双问号操作符 译者:前端小智 本文主要讲Gabriel Isenberg撰写的ES提案"Nullish coalescing for JavaS ...