Set集合类型

简介

Redis里面的Set类型跟Java里面的Set一样,都是带有自动除重的,它里面不会出现重复的数据。
特点:自动除重

底层数据结构

Redis中的Set是一个String类型的无序集合它的底层其实是一个value值为null的hash表,所以Set的添加、删除、查找的时间复杂度都是O(1)。

常用命令

sadd

将一个或多个member元素添加到集合key中,集合中已存在的member元素会被忽略。

用法:

add <key> <value1> <value2>...

如下图:

smember

取出集合key中的所有值。

用法:

smembers <key>

如下图:

sismember

判断集合key中是否有相应的值,有就输出1,无则输出0。

用法:

sismember <key> <value>

如下图:

scard

返回集合key中元素的个数。

用法:

scard <key>

如下图:

srem

删除集合key中的某个元素,删除成功返回1,删除失败返回0。

用法:

srem <key> <value>

如下图:
删除一个元素

删除多个元素

spop

随机从key集合中出栈一个值。(注意:如果值都吐完了,那么这个key也就不存在了
用法:

spop <key>

如下图:
随机出栈一个值

值吐完了,这个key也就不存在了

srandmember

随机从集合key中取出一个值,跟spop不一样,只是取出一个值,不会从集合中删除。

用法:

srandmember <key>

如下图:

smove

将集合key1里面的元素value移动到集合key2中。(注意:如果被移动的元素在key2中已经存在了,那也会执行,且执行结果为1,key1中的元素将会被删除)
用法:

smove <key1> <key2> <value>

如下图:

sinter

取出两个或多个集合的交集,有交集的话输出集合的交集,无交集的话输出空。
用法:

sinter <key1> <key2> <key3>...

如下图:

无交集的情况:

sunion

取出两个或多个集合的并集(即取出集合中的全部元素)。
用法:

sunion <key1> <key2> <key3>...

如下图:

sdiff

取出集合里面的差集。
用法:

sdiff <key1> <key2>...

如下图:

这里的意思是取出集合key1里面集合key2没有的元素。

Redis初学:7(Set类型)相关推荐

  1. Redis初学:6(List类型)

    List类型 List的特点:单键多值 Redis的List是简单的字符串列表,按照插入顺序排序.可以添加一个元素到列表的头部(左边)或者尾部(右边). 它的底层实际是个双向链表,对两段的操作性能很高 ...

  2. Redis初学:5(String类型的基本操作)

    String类型 String类型是Redis中最基本的类型,String类型有以下的一些特点: String类型是二进制安全的,这意味着String类型可以包含任何的数据,如:图片.序列化的对象等: ...

  3. Redis中对ZSet类型的操作命令

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...

  4. Redis工作笔记-Hash类型

    目录 概述 操作 概述 Redis中的Hash类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储键值对象的信息.如Username.Password和Ag ...

  5. java使用redis incr,JFinal Redis plugin 有关数值类型incr操作的bug

    先上测试代码:public class TestCache { private static final Cache testCache = Redis.use(CacheCons.TEST) ; p ...

  6. 系统学习redis之五——redis数据类型之list类型及操作

    list数据类型介绍 list是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key可以理解为链表的名字.redis的list类型其实就是一个每个子元素都是string类型 ...

  7. zset获取指定score_7、Redis中对ZSet类型的操作命令

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...

  8. Redis数据类型(hash 类型)

    Redis数据类型(hash 类型) hash 类型及操作 ① 概述 ② 相关命令列表 ③ 命令示例 hash 类型及操作 ① 概述 Redis中的Hash类型可以理解是具有String Key和St ...

  9. Redis初学:9(Zset类型)

    Zset(有序集合)类型 简介 Redis里面的有序集合Zset和集合Set非常相似,都是一个没有重复元素的字符串集合. 不同之处是有序集合Zset里面的每个成员都关联了一个评分(score),这个s ...

最新文章

  1. 关于Linux的一些个人研习感悟
  2. pxe安装linux后命令不可用,CentOS7下的PXE无人值守系统安装(亲测成功)
  3. 【数据库开发】Redis key-value内存数据库介绍
  4. 一次完整的HTTP事务是怎样一个过程
  5. 一加3 CM13 12306 不能用
  6. 【软件体系结构】软件体系结构复杂性
  7. 找到bug的根源,问五次为什么
  8. How do I enable core dumps for everybody
  9. 关于markdown
  10. 真快!iOS 15.4支持戴口罩解锁了:苹果终于满足iPhone用户需求
  11. @Scheduled不执行的原因
  12. 蓝牙mesh_什么是蓝牙mesh,蓝牙mesh特征,蓝牙mesh应用
  13. Struts2.X深入浅出 学习笔记
  14. (day 29 - 二叉树的先序遍历 )剑指 Offer 34. 二叉树中和为某一值的路径
  15. c语言运行全屏,怎么用代码控制C源程序运行时窗口是全屏的?
  16. lg相乘公式_lg的运算法则是什么
  17. pyltp依存句法分析_依存句法分析 python pyltp实现
  18. 浏览器缓存之http缓存和service worker
  19. 浅析Js中${}字符串拼接
  20. 为什么win10只有一个账户而此电脑C盘“其他人员”却占用空间呢?

热门文章

  1. 在Mac上使用pip3安装python的数据统计模块实录
  2. Linux C中的basename函数用法示例
  3. epoll ET模式服务器和客户端源码例子
  4. 测试ATS对某个特定域名下文件处理效果的方法
  5. Revit LT 2022基本培训 Revit LT 2022 Essential Training
  6. 最新Java中Date类型详解
  7. 20162313苑洪铭 第一周作业
  8. [大数据之Spark]——Actions算子操作入门实例
  9. 周记 2016.4.5
  10. Ajax 完整教程 (转)