Set是不重复且无序的字符串元素的集合。

还可以对set集取交集,并集,差等等。

在Redis中大概有15个操作Set的命令。

SADD key member [member ...]:添加一个或者多个元素到集合(set)里,复杂度O(N),N为要添加的元素个数。

SMEMBERS key:获取集合key里面的所有的成员。复杂度为O(N),N为集合的基数。

SCARD key:获取集合里面的元素数量,时间复杂度为O(1)。

SRANDMEMBER key [count]:从集合里面随机获取一个key,时间复杂度为O(1)。

SPOP key [count]:删除并获取一个集合里面的元素,时间复杂度为O(1)。

SREM key member [member ...]:从集合里删除一个或多个key,复杂度O(N),N为要删除的元素个数。

SISMEMBER key member:确定一个给定的值是一个集合的成员

27.0.0.1:6379> sadd ids id001 id002
(integer) 2
127.0.0.1:6379> smembers ids
1) "id002"
2) "id001"
127.0.0.1:6379> scard ids
(integer) 2
127.0.0.1:6379> sadd ids id003 id004
(integer) 2
127.0.0.1:6379> srandmember ids 2
1) "id001"
2) "id002"
127.0.0.1:6379> srandmember ids 2
1) "id003"
2) "id001"
127.0.0.1:6379> spop ids 1
1) "id004"
127.0.0.1:6379> sismember ids id001
(integer) 1
127.0.0.1:6379> sismember ids id002
(integer) 1
127.0.0.1:6379> sismember ids id004
(integer) 0
127.0.0.1:6379> srem ids id001 id002
(integer) 2
127.0.0.1:6379> sismember ids id001
(integer) 0
127.0.0.1:6379> srem ids id001 id002
(integer) 0
127.0.0.1:6379>

SDIFF key [key ...]:获得与所给定集合的差集,时间复杂度为O(N),N为所给定集合的成员数量之和。

SINTER key [key ...]:获得两个集合的交集,时间复杂度O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。

SUNION key [key ...]:获取所给定集合的并集,时间复杂度为O(N),N为所给定集合的成员数量之和。

SUNIONSTORE destination key [key ...]:合并set元素,并将结果存入新的set里面,时间复杂度为O(N),N为所给定集合的成员数量之和。

SINTERSTORE destination key [key ...]:获得两个集合的交集,并存入新的结果集,时间复杂度O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。

SDIFFSTORE destination key [key ...]:获得队列不存在的元素,并存入新的结果集,时间复杂度O(N), N 是所有给定集合的成员数量之和。

SMOVE source destination member:移动集合里面的一个元素member,从集合source到另一个集合destination,时间复杂度O(1)。

127.0.0.1:6379> smembers set1
1) "set14"
2) "set13"
3) "set12"
4) "set11"
127.0.0.1:6379> smembers set2
1) "set14"
2) "set23"
3) "set12"
4) "set2"
127.0.0.1:6379> sdiff set1 set2
1) "set13"
2) "set11"
127.0.0.1:6379> sinter set1 set2
1) "set14"
2) "set12"
127.0.0.1:6379> sunion set1 set2
1) "set14"
2) "set23"
3) "set11"
4) "set13"
5) "set2"
6) "set12"
127.0.0.1:6379> sdiffstore set3 set1 set2
(integer) 2
127.0.0.1:6379> smembers set3
1) "set13"
2) "set11"
127.0.0.1:6379> sunionstore set4 set1 set2
(integer) 6
127.0.0.1:6379> smembers set4
1) "set14"
2) "set23"
3) "set11"
4) "set13"
5) "set2"
6) "set12"
127.0.0.1:6379> sinterstore set5 set1 set2
(integer) 2
127.0.0.1:6379> smembers set5
1) "set14"
2) "set12"
127.0.0.1:6379> smove set1 set2 set13
(integer) 1
127.0.0.1:6379> smembers set1
1) "set14"
2) "set12"
3) "set11"
127.0.0.1:6379> smembers set2
1) "set14"
2) "set23"
3) "set12"
4) "set2"
5) "set13"
127.0.0.1:6379>

SSCAN key cursor [MATCH pattern] [COUNT count]:迭代set里面的元素

Redis常用命令--Sets的更多相关文章

  1. 第2讲 Redis常用命令与高级应用

    目录 一.redis数据类型 5. sorted sets类型和操作 二.Redis常用命令 1.键值相关命令 2.服务器相关命令 三. redis高级应用 1. 给redis服务器设置密码 2.持久 ...

  2. Redis常用命令与高级应用

    附: 127.0.0.1:6379> set xiaofei 小飞 OK 127.0.0.1:6379> get xiaofei "\xe5\xb0\x8f\xe9\xa3\x9 ...

  3. redis常用命令-2

    redis常用命令 type your_key #查看Key类型 del your_key #删除key keys * #所有key info #信息 /usr/local/bin/redis-cli ...

  4. Redis常用命令

    Redis常用命令Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以再Linux终端使用.1.键值相关命令2.服务器相关命令 一.键值相关命令 1.get get 键值 当 key ...

  5. Redis常用命令手册:服务器相关命令

    Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用.在编程时,比如各类语言包,这些命令都有对应的方法.下面将Redis提供的命令做一 ...

  6. redis redis常用命令及内存分析总结(附RedisClient工具简介

    redis常用命令及内存分析总结(附RedisClient工具简介 by:授客 QQ:1033553122 redis-cli工具 查看帮助 连接redis数据库 常用命令 exists key se ...

  7. Redis快速起步及Redis常用命令大全

    本系列教程内容提要 Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的 ...

  8. redis配置密码 redis常用命令

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy   #requi ...

  9. redis常用命令及持久化机制

    redis  常用命令 查找redis服务文件 find / -name  redis-server 查找配置文件 find / -name redis.conf 启动服务时候,要指定配置文件 启动r ...

随机推荐

  1. JavaWeb学习笔记三 Servlet

    Servlet 是运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API,动态的向客户 ...

  2. 基础补充:使用xlrd模块读取excel文件

    因为接口测试用例使用excel文件来维护的,所以有必要学习下操作excel的基本方法 参考博客:python 3 操作 excel 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...

  3. 进程与fork()、wait()、exec函数组

    进程与fork().wait().exec函数组 内容简介:本文将引入进程的基本概念:着重学习exec函数组.fork().wait()的用法:最后,我们将基于以上知识编写Linux shell作为练 ...

  4. Python实现基于协程的异步爬虫

    一.课程介绍 1. 课程来源 本课程核心部分来自<500 lines or less>项目,作者是来自 MongoDB 的工程师 A. Jesse Jiryu Davis 与 Python ...

  5. Hibernate之ORM与Hibernate

    ORM: ORM是 Object /Relation Mapping,对象/关系数据库映射. 目前比较流行的编程语言,如java ,c#等,它们都是面向对象的编程语言,而目前比较主流的数据库产品,如O ...

  6. vue下拉列表

    最近在弄作品,做了个下拉列表.心想各位小哥哥.小姐姐可能会用到相同的需求,就把下拉列表封装一下,希望能对各位小哥哥,小姐姐有帮助 github地址:https://github.com/ClmPisc ...

  7. .Net Core MongoDB 简单操作。

    一:MongoDB 简单操作类.这里引用了MongoDB.Driver. using MongoDB.Bson; using MongoDB.Driver; using System; using S ...

  8. GIT入门笔记(20)- 使用eclipse 基于 git 开发过程梳理

    一.创建本地分支 1.下载/更新 本地 主干 如果本地还没有 本地主干,下载:git clone 如果本地已有了 本地主干,更新:git pull 工程右键菜单:team -> pull 2.基 ...

  9. docker实践3

    我的docker学习笔记3   $docker run ubuntu echo'hello world' $docker run -i -t ubuntu /bin/bash #ps -ef #exi ...

  10. python 模拟浏览器登陆coursera

    import requests import random import string def randomString(length): return ''.join(random.choice(s ...