当前位置: 首页 > news >正文

python redis 操作_Python redis set集合操作

本章主要介绍对集合数据的操作,集合数据类型的结构如图 1 所示。

6-200ZQ04109414.gif

图 1 集合类型

1) sadd():该函数用于向集合中添加单个或多个元素,返回新添加的元素个数。如果某个值以前就存在了,就不会添加了,所以实际添加的元素个数可能比请求添加的个数少。

>>> r.sadd('set1', 1) # 添加一个元素1

1 # 成功添加了一个元素

>>> r.type('set1') # 类型是set

b'set'

>>> r.sadd('set1', 2, 3, 4) # 添加多个元素

3 # 成功添加3个元素

>>> r.sadd('set1', 2, 3, 100) # 再次添加多个元素

1 # 仅新添加了一个元素

2) scard():该函数返回集合中元素的个数。

>>> r.sadd('set1', 1) # 添加一个元素

1

>>> r.type('set1')

b'set'

>>> r.sadd('set1', 100) # 再次添加一个元素

1

>>> r.sadd('set1', "name")

1

>>> r.scard('set1') # 得到现在集合中元素的个数

3 # 现在有三个元素了

3) smembers(键):该函数得到集合内所有的元素,返回一个普通的集合。

>>> r.smembers('set1')

{b'name', b'100', b'1'} # 返回一个集合

>>> type(x) # 得到返回值的类型

4) sdiff(键 a,键 b):该函数用于求两个集合的差集,并返回一个集合,该集合包含属于集合 a 且不属于集合 b 的元素,如图 2 所示。

6-200ZQ04215521.gif

图 2 差集

>>> r.sadd("set1", 1, 2, 3)

3

>>> r.sadd("set2", 2, 3, 100)

3

>>> r.sdiff("set1", "set2")

{b'1'}

其实参数还可以有集合 c,表示从集合 a 中去掉所有属于集合 b 或者集合 c 内的元素后剩余的部分,如图 3 所示。

6-200ZQ04231141.gif

图 3 多个集合的差集

例如可以有三个集合 set1、set2 和 set3,现在要求 set1-set2-set3 的值。

>>> r.sadd("set1", 1, 2, 3) # 定义集合set1

3

>>> r.sadd("set2", 2, 3, 100) # 定义集合set2

3

>>> r.sdiff("set1", "set2") # set1-set2

{b'1'}

>>> r.sadd("set3", 1, 3, 200) # 定义集合set3

3

>>> r.sdiff("set1", "set2", "set3") # 求set1-set2-set3

set()

5) sunion(键1,键2):该函数用于求两个集合的合集。合集就表示这样的集合,其元素要么来自输入集合 a,要么来自输入集合 b,如图 4 所示。

6-200ZQ04253D9.gif

图 4 合集

相关文章:

  • fileinputstream读取文件_20M 文件用 Java 压缩从30秒到1秒的优化过程
  • python打印皮卡丘_用python打印你的宠物小精灵吧
  • 平方根python_python的平方根
  • python怎么测试c代码_可以使用基于Python的单元测试框架和跑步者来测试C代码
  • nginx 跨域访问配置_nginx配置用户访问认证
  • python爬虫xpath教程_Spider-Python爬虫之XPath 教程
  • python常见报错类型_python打印错误类型
  • 华为官方解锁工具_开启“应用锁”和“健康使用手机密码”的华为,哪个功能对于用户隐私更安全?...
  • vant coupon 时间戳如何计算_flink入门(八)中的时间戳如何使用?Watermark使用及原理...
  • python按esc结束循环_當按ESC鍵時,立即讓python退出程序
  • python 元组和列表区别_Python高级数据类型之列表、元组
  • 微软商店账户登录一直转圈_Win 10再曝致命BUG,微软:暂不清楚问题根源
  • vlookup两个条件匹配_自从学会了INDEX+MATCH,我就再也不用VLOOKUP了
  • 32位svn 64位操作系统_如何选择安装32位系统还是64位系统
  • python生产和消费模型_Python线程+队列实现生产消费模型,Pythonthreadingqueue
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • $translatePartialLoader加载失败及解决方式
  • 《剑指offer》分解让复杂问题更简单
  • java2019面试题北京
  • Javascript弹出层-初探
  • OSS Web直传 (文件图片)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Shadow DOM 内部构造及如何构建独立组件
  • vue总结
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 力扣(LeetCode)357
  • 每天一个设计模式之命令模式
  • 那些年我们用过的显示性能指标
  • 前端面试题总结
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 一文看透浏览器架构
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #etcd#安装时出错
  • #pragma 指令
  • #QT项目实战(天气预报)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (多级缓存)缓存同步
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm高校实验室 毕业设计 800008
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET6 命令行启动及发布单个Exe文件
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • @ModelAttribute 注解
  • @staticmethod和@classmethod的作用与区别