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 ...
随机推荐
- Vagrant 管理部署 VirtualBox (推荐使用)
学习一段时间的大数据和容器技术,使用虚拟机搭建实验环境还是挺耗时耗力的. 一旦虚拟机坏掉了,还要重新开始. 最近发现了Vagrant, 简直好用上天,方便快捷,易用. 下面介绍如何在Windows中安 ...
- 7种方法实现移动端Retina屏幕1px边框效果
在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...
- javascript事件绑定和普通事件的区别
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- JAVA的8种基本数据类型和类型转换
byte 字节型 1字节(8bit) 初始值:0 char 字符型 2字节 空格 short 短整型 2字节 0 int 整形 4字节 0 long ...
- LINUX文件及目录管理命令基础
Linux命令行组成结构 Linux命令结构 在Linux中一切皆文件,一切皆命令! 命令提示符: [root@tt ~]# [xiaohui@tt ~]$ Linux命令行常用快捷键 ctrl + ...
- Class "xxxxx"defined without specifying a base class
解决方法: 导入#import xxxx.h即可 程序需要了解整个类.所以需要添加 #import xxxx.h
- c# js 删除table原行数据
function addtreetotable(obj){ var table1 = document.getElementById("Table1"); var hang = ...
- kindeditor富文本编辑器初步使用教程
下载kindeditor 可以选择去官网下载(http://kindeditor.net/down.php),不过要FQ:或者直接CSDNhttp://download.csdn.net/downlo ...
- jmeter接口测试实例7-关联
Jmeter实例7:关联(牛刀小试中登录.金币充值接口) 必须从网上下载这个插件放在lib的ext目录下才可以用,在登录接口添加此插件 Sign是变量名,其实就是下一步充值金币要取的值:路径是从哪里取 ...
- C/JS_二分法查找
1. 二分法查找 前提: 数据是排好序的. 题设:给出一个有序arr,从中找出key,arr的区间是array[ low , higt]. 步骤: (1)mid=(low+high)/2 (2)arr ...