redis:set集合类型的操作(无序集合)
1. set集合类型的操作(无序集合)
集合具有无序性(没有顺序)、确定性(描述是确定的)、唯一性(没有重复的元素)
1.1. sadd key member [member ...]
语法:sadd key member [member ...]
作用:往集合key中添加元素
返回值:添加元素的个数
例:
127.0.0.1:6379> sadd fruit apple banana pear
(integer) 3
127.0.0.1:6379> sadd num 1 1
(integer) 1
1.2. smembers key
语法:smembers key
作用:返回集合key中所有的元素
例:
127.0.0.1:6379> smembers fruit
1) "pear"
2) "banana"
3) "apple"
127.0.0.1:6379> smembers num
1) "1"
1.3. srandmember key [count]
语法:srandmember key [count]
作用:返回集合key中随机的1个元素
例:
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
127.0.0.1:6379> srandmember letter
"e"
127.0.0.1:6379> srandmember letter
"c"
127.0.0.1:6379> srandmember letter
"a"
127.0.0.1:6379> srandmember letter 2
1) "c"
2) "e"
127.0.0.1:6379> srandmember letter 3
1) "c"
2) "e"
3) "a"
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
1.4. srem key member [member ...]
语法:srem key member [member ...]
作用:删除集合key中的member [member...]元素
返回值:忽略不存在的元素后,真正删除掉的元素的个数
例:
127.0.0.1:6379> smembers num
1) "1"
127.0.0.1:6379> srem num 1
(integer) 1
127.0.0.1:6379> smembers num
(empty list or set)
127.0.0.1:6379> srem fruit pear
(integer) 1
127.0.0.1:6379> smembers fruit
1) "banana"
2) "apple"
1.5. spop key [count]
语法:spop key [count]
作用:返回并删除集合key中1个随机的元素
例:
127.0.0.1:6379> sadd letter a b c d e f g
(integer) 7
127.0.0.1:6379> smembers letter
1) "c"
2) "d"
3) "g"
4) "b"
5) "e"
6) "a"
7) "f"
127.0.0.1:6379> spop letter
"b"
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
6) "f"
127.0.0.1:6379> spop letter
"f"
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
案例:
spop是返回并删除一个随机的元素,所以可以用来做抽奖,第一次spop出的可以作为第一名(一等奖),第二次spop出的可以作为第二名(二等奖)...
1.6. sismember key member
语法:sismember key member
作用:判断member是否是集合key中的元素
返回值:是返回1;不是返回0
例:
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
127.0.0.1:6379> sismember letter a
(integer) 1
127.0.0.1:6379> sismember letter k
(integer) 0
127.0.0.1:6379> sismember letter 0
(integer) 0
1.7. scard key
语法:scard key
作用:返回集合key中元素的个数
例:
127.0.0.1:6379> smembers letter
1) "d"
2) "g"
3) "c"
4) "e"
5) "a"
127.0.0.1:6379> scard letter
(integer) 5
1.8. sinter key [key ...]
语法:sinter key [key ...]
作用:求出key [key ...]几个集合中的交集,并返回
例:
127.0.0.1:6379> sadd lisa c python java
(integer) 3
127.0.0.1:6379> sadd wang english python php
(integer) 3
127.0.0.1:6379> sadd poly python redis c++
(integer) 3
127.0.0.1:6379> sinter lisa wang poly
1) "python"
127.0.0.1:6379> sadd tom python java php redis
(integer) 4
127.0.0.1:6379> sinter tom poly
1) "redis"
2) "python"
1.9. sinterstore destination key [key ...]
语法:sinterstore destination key [key ...]
作用:求出key [key ...]几个集合中的交集,并赋给destination或存储在destination中
返回值:返回真正存储到destination中的元素的个数
例:
127.0.0.1:6379> smembers lisa
1) "python"
2) "java"
3) "c"
127.0.0.1:6379> smembers poly
1) "c++"
2) "redis"
3) "python"
127.0.0.1:6379> smembers tom
1) "redis"
2) "php"
3) "python"
4) "java"
127.0.0.1:6379> sinterstore lisa_tom lisa tom
(integer) 2
127.0.0.1:6379> smembers lisa_tom
1) "python"
2) "java"
1.10. sunion key [key ...]
语法:sunion key [key ...]
作用:求出key [key ...]几个集合的并集,并返回
例:
127.0.0.1:6379> sadd lisa c python java
(integer) 3
127.0.0.1:6379> sadd wang english python php
(integer) 3
127.0.0.1:6379> sadd poly python redis c++
(integer) 3
127.0.0.1:6379> sunion lisa wang
1) "python"
2) "c"
3) "java"
4) "php"
5) "english"
127.0.0.1:6379> sadd tom python java php redis
(integer) 4
127.0.0.1:6379> sunion lisa wang tom poly
1) "php"
2) "c"
3) "c++"
4) "redis"
5) "python"
6) "english"
7) "java"
1.11. sdiff key [key ...]
语法:sdiff key [key ...]
作用:求出key与[key ...]的差集
例:
127.0.0.1:6379> smembers lisa
1) "python"
2) "java"
3) "c"
127.0.0.1:6379> smembers tom
1) "redis"
2) "php"
3) "python"
4) "java"
127.0.0.1:6379> sdiff lisa tom
1) "c"
127.0.0.1:6379> sdiff tom lisa
1) "redis"
2) "php"
127.0.0.1:6379> smembers poly
1) "c++"
2) "redis"
3) "python"
127.0.0.1:6379> sdiff tom lisa poly
1) "php"
redis:set集合类型的操作(无序集合)的更多相关文章
- redis:order set有序集合类型的操作(有序集合)
1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...
- Python集合类型的操作与应用
Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...
- 四:redis的sets类型 - 相关操作(有序和无序集合)
================四十五种(有序和无序集合):sets种类(它是一个集)============= 简介: set它代表的集合.加入是随意添加----->无序集合 ...
- c#重点[集合类型]异常,数组,集合ArrayList,List<>,hashTable,hashtable泛型(Dictionary)
1.foreach[对一些数组或集合进行遍历] foreach(类型 变量名 in 集合对象){语句体} //定义一个数组 ,,,,, }; foreach(var i in sNum1) { Con ...
- [Swift]遍历集合类型(数组、集合和字典)
Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值集合. 数组是有序的值集合. 集是唯一值的无序集合. 字典是键值关联的无序集合. Swift中无法再使用传统形式的for循环. // ...
- 三:redis的List类型相关操作
</pre><pre name="code" class="php" style="font-size: 14px;"&g ...
- redis:list列表类型的操作
1. list列表类型的操作 1.1. lpush/rpush key value [value ...] 链表的头部(左侧)或尾部(右侧)插入值 语法:lpush key value [value ...
- redis:string字符串类型的操作
1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seco ...
- [redis] redis 对string类型数据操作
package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...
随机推荐
- OpenCV trackbar 避免使用全局变量
OpenCV trackbar 避免使用全局变量 在OpenCV中使用trackbar是交互式地图像处理的一种方式,例如用于图像阈值分割,用户可以一边调整阈值一边看效果.但是很不幸,绝大多数教程上使用 ...
- python-中缀表达式转前缀表达式
作完了中缀前缀,作一个归纳吧. https://www.cnblogs.com/unixfy/p/3344550.html # coding = utf-8 class Stack: def __in ...
- 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)
kafka的前言知识: :Kafka是什么? 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算.kafka是一个生产-消费模型. Producer:生产者,只负责数 ...
- 开始写博客,学习Linq
除了为处理数据提供全新的方法之外,LINQ还代表了一种朝着声明式以及函数式编程发展的转变. 当人们问我为什么要学习LINQ时,我会告诉他们LINQ可以处理XML.关系型数据以及内存中的集合,更会提到L ...
- openresty用naxsi防xss、SQL注入
下载naxsi wget https://github.com/nbs-system/naxsi/archive/untagged-afabfc163946baa8036f.tar.gz tar zx ...
- Log4Net帮助类
工具类 using System; using System.Diagnostics; using log4net; namespace Trumgu_BI_PF.Util { public clas ...
- zTree的使用教程
1.首先去官网下载http://www.ztree.me/v3/main.php#_zTreeInfo 2.之后引入: <script src="js/jquery.ztree.all ...
- Android开发——使用Jword生成本地word文档
本文主要介绍如何使用Jword生成本地word文档,这里涉及到Jword的使用技巧,本文给出相应的代码,需要的朋友可以参考下. 为什么使用Jword呢?因为IText .Freemark在安卓平台上压 ...
- c_数据结构_顺序表
#define OK 1 #define ERROR 0 #define OVERFLOW -2 #define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量 #define ...
- php 操作数据库
$datetoday = date('Y-m-d'); $datetime = $thedate; $data_info = $data; $db = array( 'dsn' => 'mysq ...