在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。
      和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完全相同的。换句话说,如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计算操作,如unions、intersections和differences。由于这些操作均在服务端完成,因此效率极高,而且也节省了大量的网络IO开销。

1、SADD key value1 value2 value3

增加值。如果该值已存在,那么将会忽略,其他值正常插入。

127.0.0.1:> sadd country china japan singapore
(integer)
127.0.0.1:> smembers country
) "china"
) "singapore"
) "japan"

2、SREM key value1 [value2 ...]

移除指定的成员

127.0.0.1:> smembers country
) "china"
) "singapore"
) "japan"
127.0.0.1:> srem country japan
(integer)
127.0.0.1:> smembers country
) "china"
) "singapore"

3、SISMEMBER key value

成员是否存在

127.0.0.1:> smembers country
) "china"
) "singapore"
127.0.0.1:> sismember country china
(integer)

4、SCARD key

获取Set中成员的数量

127.0.0.1:> smembers country
) "china"
) "singapore"
127.0.0.1:> scard country
(integer)

5、SMEMBERS key

列出所有成员

sadd country china japan singapore
(integer)
127.0.0.1:> smembers country
) "china"
) "singapore"
) "japan"

6、SPOP key

随机的移除Set中的一个成员并返回它

127.0.0.1:> smembers country
) "Singapore"
) "Japan"
) "Bakistan"
) "America"
) "China"
) "France"
127.0.0.1:> spop country
"Japan"
127.0.0.1:> spop country
"Bakistan"

7、SRANDMEMBER key

随机的返回Set中的一个成员,不同的是该命令并不会删除返回的成员

127.0.0.1:> smembers country
) "America"
) "China"
) "Singapore"
) "France"
127.0.0.1:> srandmember country
"America"
127.0.0.1:> srandmember country
"France"
127.0.0.1:> smembers country
) "America"
) "China"
) "Singapore"
) "France"

8、SMOVE source destination member

原子性的将参数中的成员从source键移入到destination键所关联的Set中。如果该成员在 source 中不存在,那么操作将被忽略。如果该成员已在 destination 中存在,那么该操作仅仅将 member 从 source 中移除。

127.0.0.1:> smembers country
) "America"
) "China"
) "Singapore"
) "France"
127.0.0.1:> smembers developedCty
) "Japan"
127.0.0.1:> smove country developedCty America
(integer)
127.0.0.1:> smembers developedCty
) "America"
) "Japan"
127.0.0.1:> smembers country
) "China"
) "Singapore"
) "France"

------------------ 集合操作 ------------------

9、SDIFF key1 [key2 ...]

返回 key1 - key2 的差集

127.0.0.1:> sadd AsiaCountry China Japan Korea Thailand Singapore Vietnam
(integer)
127.0.0.1:> sadd DevelopedCty America Japan Korea Singapore France German
(integer)
127.0.0.1:> sdiff AsiaCountry DevelopedCty //找到亚洲中的非发达国家
) "China"
) "Vietnam"
) "Thailand"
127.0.0.1:> sdiff DevelopedCty AsiaCountry //找到发达国家中国的非亚洲国家
) "America"
) "German"
) "France"

10、SINTER key1 key2

返回交集

127.0.0.1:> sinter AsiaCountry DevelopedCty  //找出既是发达国家,又是亚洲国家的
) "Japan"
) "Korea"
) "Singapore"

11、SUNION key1 [key2 ...]

返回并集

127.0.0.1:> smembers AsiaCountry
) "Vietnam"
) "Japan"
) "China"
) "Korea"
) "Thailand"
) "Singapore"
127.0.0.1:> smembers DevelopedCty
) "German"
) "Japan"
) "America"
) "Korea"
) "Singapore"
) "France"
127.0.0.1:> sunion AsiaCountry DevelopedCty
) "Japan"
) "America"
) "China"
) "Korea"
) "Singapore"
) "Thailand"
) "Vietnam"
) "German"
) "France"

12、SUNIONSTORE key1 key2 [key3 ...]

返回key2,key3等的并集并存储在key1中

127.0.0.1:> smembers AsiaCountry
) "Japan"
) "China"
) "Korea"
) "Singapore"
127.0.0.1:> smembers DevelopedCty
) "German"
) "Japan"
) "America"
) "Korea"
) "Singapore"
) "France"
127.0.0.1:> sunionstore totalCty AsiaCountry DevelopedCty
(integer)
127.0.0.1:> smembers totalCty
) "German"
) "Japan"
) "America"
) "China"
) "France"
) "Korea"
) "Singapore"

6.Redis常用命令:Set的更多相关文章

  1. Redis常用命令

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. Redis 常用命令 大全

    Redis 常用命令 发现几个很好的 Redis 常用命令汇总大全网页,分享给小伙伴们~ 1.Redis 命令参考 http://redisdoc.com/string/index.html 2.W3 ...

  10. No-sql之redis常用命令

    转自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介绍 Redis是一种基于内存存储的key-val ...

随机推荐

  1. MINIDVD

    import java.util.*; public class MiniDVD { public static void main(String[] args){ //扫描器 Scanner inp ...

  2. Codeforce 水题报告(2)

    又水了一发Codeforce ,这次继续发发题解顺便给自己PKUSC攒攒人品吧 CodeForces 438C:The Child and Polygon: 描述:给出一个多边形,求三角剖分的方案数( ...

  3. 2017-2-19 C#基础 数据类型

    数据类型分为基本数据类型和引用类型.基本数据类型分为两大类,值类型,字符型(char)和布尔型(bool).其中值类型分为整型和浮点型.整型分为byte,short,int,long.常用的是int( ...

  4. django-查询语句(一)

    1.model 假设我们的model如下: 某个JobType下有很多Job. class JobType(models.Model): name = models.CharField(max_len ...

  5. 工具使用——MATLAB基本调试方法

    作者:桂. 时间:2017-02-28  07:06:30 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 声明:转载请注明出处, ...

  6. 浅谈java的String字符串

    一提到java的String首先想到的应该就是它的不可变性,其原因是因为String类的内部是使用一个private final char value[]的字符数组来存储数据,本身没有相应的set方法 ...

  7. JavaScript中的函数使用

    append() 是代表改变格子的内容 prev()是代表前一个格子 next()是代表下一个相邻的格子 hide()是代表隐藏 show()是代表显示 childen()是代表子节点 eq()是代表 ...

  8. 让SQL再快一点儿

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语 ...

  9. Objective-c日记-之属性列表

    属性列表 1,概述 在Cocoa中,有一类名为属性列表的对象(常简写为plist),Cocoa知道如何将它们保存到文件和从文件中加载.包括以下类NSArray,NSDictionary,NSStrin ...

  10. log4go 的 Bug Fix 及 增强

    log4go 一直存在关闭时丢失记录的问题.网络上很多人怀疑是Flush.经过跟踪发现只要在 Close() 函数中增加以下语句: for i := 10; i > 0 && l ...