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,用来对分数进行操作

Python Redis set集合的更多相关文章

  1. python redis连接 有序集合去重

    # -*- coding: utf-8 -*- import redisfrom constant import redis_ip, redis_db, redis_pw, logger, redis ...

  2. redis:set集合类型的操作(无序集合)

    1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...

  3. Python面试题集合带答案

    目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...

  4. python redis之连接池的原理

    python redis之连接池的原理 转载地址 什么是连接池 通常情况下, 当我们需要做redis操作时, 会创建一个连接, 并基于这个连接进行redis操作, 操作完成后, 释放连接, 一般情况下 ...

  5. python+redis测试环境搭建

    针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...

  6. Redis 有序集合(sorted set)

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

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

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

  8. python爬虫工具集合

    python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...

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

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

随机推荐

  1. hibernate03增删改查

    <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hiber ...

  2. 23、svn与打飞机

    svn与git 打飞机 css *{margin:0; padding:0;} html,body{width:100%; height:100%; overflow: hidden;} .main{ ...

  3. elk之elasticsearch(二)

    一.下载安装包:注意版本统一 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip wge ...

  4. Python学习之旅(二十三)

    Python基础知识(22):进程和线程(Ⅰ) 1.多进程 (1)fork Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程 fork可以在Mac ...

  5. Java编程基础篇第一章

    计算机语言 人与计算机交流的方式. 计算机语言有很多种如:C语言,c++,Java等 人机交互 软件的出现实现了人与计算机之间的更好的交流(交互) 交互方式 图形化界面:便于交互,容易操作,简单直观, ...

  6. 实际体验Span<T> 的惊人表现

    前言 最近做了一个过滤代码块功能的接口.就是获取一些博客文章做文本处理,然后这些博客文章的代码块太多了,很多重复的代码关键词如果被拿过来处理,那么会对文本的特征表示已经特征选择会有很大的影响.所以需要 ...

  7. MOT南京站 | 卓越研发之路:锻造顶级后端系统

    代码是互联网企业信息化核心,也是众多研发团队智慧的结晶,如何将代码发挥到最大价值?如何用代码快.准.好的实现需求?相信这是很多IT从业者所困扰的问题. MOT南京站首期以『锻造顶级后端系统』为主题,我 ...

  8. Codeforces 1099 - A/B/C/D/E/F - (Done)

    链接:https://codeforces.com/contest/1099 A - Snowball - [模拟水题] 题意:有一个雪球从山顶滚落,山坡上有两块石头,每秒钟会一次发生三件事:1.雪球 ...

  9. Luogu 1071 - 潜伏者 - [字符串]

    题目链接:https://www.luogu.org/problemnew/show/P1071 题解: 模拟就完事儿了. 注意failed的情况有:出现一个 $f[x]$ 对应多个值:存在两个不同的 ...

  10. One Technical Problem: Can one process load two different c libraries simutaneously, such as uclibc and glibc?

    For some special reasons, there is a possible case which need to load uclibc and glibc in one proces ...