Python操作redis学习系列之(集合)set,redis set详解 (六)
# -*- coding: utf-8 -*-
import redis
r = redis.Redis(host="126.56.74.190",port=639,password="")
1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。当集合 key 不是集合类型时,返回一个错误。
print r.sadd("",1) #输出的结果是1
print r.sadd("",2) #输出的结果是1
print r.sadd("",2) #因为2已经存在,不能再次田间,所以输出的结果是0
print r.sadd("",3,4) #输出的结果是2
print r.sinter("") #输出的结果是set(['1', '3', '2', '4'])
2.Scard 命令返回集合中元素的数量。集合的数量。 当集合 key 不存在时,返回 0 。
print r.sadd("",1) #输出的结果是1
print r.sadd("",2,3,4,5) #输出的结果是1
print r.scard("") #输出的结果是5
3.Sdiff 命令返回给定集合之间的差集。不存在的集合 key 将视为空集。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.sadd("",4,5,6,7,8,9) #输出的结果是6
print r.sdiff(31,32) #输出的结果是set(['1', '3', '2'])
print r.sdiff(32,31) #输出的结果是set(['9', '8', '7'])
print r.sdiff(31,31) #输出的结果是set([])
4.Sdiffstore 命令将给定集合之间的差集存储在指定的集合中。如果指定的集合 key 已存在,则会被覆盖。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.sadd("",4,5,6,7,8,9) #输出的结果是6
print r.sadd("",0) #输出的结果是1
print r.sdiffstore("","","") #输出的结果是3
print r.sinter("") #输出的结果是 set(['1', '3', '2'])
5.Sinter 命令返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
print r.sadd("",3,4,5,6) #输出的结果是4
print r.sadd("",1,2,3,4) #输出的结果是4
print r.sinter(51,52) #输出的结果是set(['3', '4'])
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.sadd("",3,4,5,6,7,8,9)#输出的结果是7
print r.sinter(53,54) #输出的结果是set(['3', '5', '4', '6'])
print r.sinter(53,56) #输出的结果是set([])
6.Sinterstore 命令将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖。
print r.sadd("",3,4,5,6) #输出的结果是4
print r.sadd("",1,2,3,4) #输出的结果是4
print r.sadd("",0) #输出的结果是1
print r.sinterstore(63,61,62) #输出的结果是2
print r.sinter(63) #输出的结果是set(['3', '4'])
7.Sismember 命令判断成员元素是否是集合的成员。
如果成员元素是集合的成员,返回 1 。 如果成员元素不是集合的成员,或 key 不存在,返回 0 。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.sismember("",1) #输出的结果是True
print r.sismember("",2) #输出的结果是True
print r.sismember("",7) #输出的结果是False
print r.sismember("",8) #输出的结果是False
8.Smembers 命令返回集合中的所有的成员。 不存在的集合 key 被视为空集合。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.smembers(81) #输出的结果是set(['1', '3', '2', '5', '4', '6'])
print r.smembers(82) #输出的结果是set([])
9.Smove 命令将指定成员 member 元素从 source 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 False 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误。
如果成员元素被成功移除,返回 True。 如果成员元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回 False
print r.sadd("",1,2,) #输出的结果是2
print r.sadd("",3,4,) #输出的结果是2
print r.smove(91,92,1) #把91中的1移动到92中去,输出的结果是True
print r.smembers("") #输出的结果是set(['2'])
print r.smembers("") #输出的结果是set(['1', '3', '4'])
print r.smove(91,92,5) #91不存在5,输出的结果是False
print r.smembers("") #输出的结果是set(['2'])
print r.smembers("") #输出的结果是set(['1', '3', '4'])
10. Spop 命令用于移除并返回集合中的一个随机元素。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.spop("") #输出的结果是3
print r.smembers("") #输出的结果是set(['1', '2', '5', '4', '6'])
print r.spop("") #输出的结果是1
print r.smembers("") #输出的结果是set(['2', '5', '4', '6'])
11.Srandmember 命令用于返回集合中的一个随机元素。
从 Redis 2.6 版本开始, Srandmember 命令接受可选的 count 参数:
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。
print r.sadd("",1,2,3,4,5,6) #输出的结果是6
print r.srandmember(11) #输出的结果是4
print r.smembers(11) #输出的结果是set(['1', '3', '2', '5', '4', '6'])
print r.srandmember(11,3) #输出的结果是['6', '3', '1']
print r.smembers(11) #输出的结果是set(['1', '3', '2', '5', '4', '6'])
12. Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
当 key 不是集合类型,返回一个错误。
被成功移除的元素的数量,不包括被忽略的元素。
print r.sadd("",1,2,3,4,5,6,7) #输出的结果是7
print r.srem("",1) #输出的结果是1
print r.smembers("") #输出的结果是set(['3', '2', '5', '4', '7', '6'])
print r.srem("",8) #输出的结果是0
print r.smembers("") #输出的结果是set(['3', '2', '5', '4', '7', '6'])
13.Sunion 命令返回给定集合的并集。不存在的集合 key 被视为空集。
print r.sadd("",1,2,3,4,5,6,7) #输出的结果是7
print r.sadd("",0,1,2,7,8,9) #输出的结果是6
print r.sunion(131,132) #输出的结果是set(['1', '0', '3', '2', '5', '4', '7', '6', '9', '8'])
print r.sunion(131,134) #输出的结果是set(['1', '3', '2', '5', '4', '7', '6'])
14.Sunionstore 命令将给定集合的并集存储在指定的集合 destination 中。
print r.sadd("",1,2,3,4,5,6,7) #输出的结果是7
print r.sadd("",0,1,2,3,4) #输出的结果是5
print r.sunionstore(143,141,142) #输出的结果是8
print r.smembers(143) #输出的结果是set(['1', '0', '3', '2', '5', '4', '7', '6'])
15.Sscan 命令用于迭代集合键中的元素。
print r.sadd("",1,2,3,4,5,6,7) #输出的结果是7
print r.sscan(151,cursor=2,match=1,count=1) #输出的结果是 (0L, ['1'])
redis安装和配置(一) http://www.cnblogs.com/xuchunlin/p/6676308.html
redis学习 (key)键,Python操作redis 键 (二) http://www.cnblogs.com/xuchunlin/p/7061524.html
Python操作redis字符串(String)详解 (三) http://www.cnblogs.com/xuchunlin/p/7062065.html
Python操作redis系列以 哈希(Hash)命令详解(四) http://www.cnblogs.com/xuchunlin/p/7064860.html
Python操作redis系列之 列表(list) (五) http://www.cnblogs.com/xuchunlin/p/7067154.html
Python操作redis学习系列之(集合)set,redis set详解 (六)http://www.cnblogs.com/xuchunlin/p/7070267.html
python 操作redis之——有序集合(sorted set) (七) http://www.cnblogs.com/xuchunlin/p/7097272.html
python 操作redis之——HyperLogLog (八) http://www.cnblogs.com/xuchunlin/p/7097272.html
redis.windows.conf各项配置参数介绍 (九) http://www.cnblogs.com/xuchunlin/p/7097729.html
附录: 字符串命令
Redis 集合(Set) 命令
| 命令 | 描述 |
|---|---|
| Redis Sadd 命令 | 向集合添加一个或多个成员 |
| Redis Scard 命令 | 获取集合的成员数 |
| Redis Sdiff 命令 | 返回给定所有集合的差集 |
| Redis Sdiffstore 命令 | 返回给定所有集合的差集并存储在 destination 中 |
| Redis Sinter 命令 | 返回给定所有集合的交集 |
| Redis Sinterstore 命令 | 返回给定所有集合的交集并存储在 destination 中 |
| Redis Sismember 命令 | 判断 member 元素是否是集合 key 的成员 |
| Redis Smembers 命令 | 返回集合中的所有成员 |
| Redis Smove 命令 | 将 member 元素从 source 集合移动到 destination 集合 |
| Redis Spop 命令 | 移除并返回集合中的一个随机元素 |
| Redis Srandmember 命令 | 返回集合中一个或多个随机数 |
| Redis Srem 命令 | 移除集合中一个或多个成员 |
| Redis Sunion 命令 | 返回所有给定集合的并集 |
| Redis Sunionstore 命令 | 所有给定集合的并集存储在 destination 集合中 |
| Redis Sscan 命令 | 迭代集合中的元素 |
Python操作redis学习系列之(集合)set,redis set详解 (六)的更多相关文章
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
- 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性. 安全性设置 设置客户端操作秘密 redis安装 ...
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 大数据学习系列之三 ----- HBase Java Api 图文详解
版权声明: 作者:虚无境 博客园出处:http://www.cnblogs.com/xuwujing CSDN出处:http://blog.csdn.net/qazwsxpcm 个人博客出处:http ...
- 大数据学习系列之五 ----- Hive整合HBase图文详解
引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...
- 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- PyQt(Python+Qt)学习随笔:QLineEdit行编辑器功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QLineEdit部件是一个单行文本编辑器,支持撤消和重做. ...
- 第15.21节 PyQt(Python+Qt)入门学习:QListView的作用及属性详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView是从QAbstractItemView 派生的类,实现了QAbstrac ...
随机推荐
- UVa11988 Broken Keyboard 损坏的键盘【list】
题目链接:https://vjudge.net/problem/UVA-11988 题目大意: 键盘的home键和end键出现了问题. 在输入一段文本时,home键或end键可能会自动被按下,home ...
- Linux学习之RPM包管理-rpm命令管理(十六)
Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...
- 堆优化dijstra
因为spfa没事就被卡一卡,所以堆优化dijstra就显得很重要,在最短路或者其模型里边,最少有一条边是没有被更新过的,也就是它是最短的,同理从这个点开始也有一条边最短,所以每次就找最短的然后松弛操作 ...
- CISCO ACL配置(目前)
什么是ACL? 访问控制列表简称为ACL,访问控制列表使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址,目的地址,源端口,目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制 ...
- ES2018正则表达式更新
如果你是一个初学者,这篇文章可以拓展你对正则表达式用法的理解,不过建议你先阅读一些正则表达式入门文章,比如经典的<正则表达式30分钟入门教程>.如果你对正则表达式有一定的认识,那么这篇文章 ...
- Airtest基本使用
前段时间在博客中见到airtest的介绍,自己并实践了一番,用起来的确很方便,所以今天就来分享下. Airtest简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试 ...
- java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration] with root cause
在用Java web和hbase连接时,报出来这个错误,一开始我以为是hbase导入的包位置不对,不从build path那里导入,而是从WEB-INF下的lib中导入,尝试了之后结果仍是这个错误 十 ...
- Halcon 常用算子使用场合
Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...
- js的cookie和sesession详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习2
#include <iostream>using namespace std;const int MAXSIZE=100;int main(){ int a[MAXSIZE]; int s ...