Redis基本数据类型Set常用操作命令

 更新时间:2022年05月31日 14:48:06   作者:把苹果咬哭的测试笔记  
这篇文章主要为大家介绍了Redis基本数据类型Set常用操作命令,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Redis基本数据类型Set常用操作

Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

另外,redis中的set是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

一、sadd 添加一个、多个元素

将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
若key不存在,则创建一个只包含添加的元素作成员的集合。

sadd myset hello pingguo test

若key不是集合类型时,返回一个错误。

二、smembers 查看集合

返回集合中的所有的成员。

smembers myset

三、scard 元素数量

返回集合中元素的数量。

scard myset

四、srem 移除一个、多个元素

用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
当key不是集合类型,返回一个错误。

srem myset hello test

五、srandmember 随机元素

用于返回集合中的一个随机元素。

srandmember myset 3

这里随机抽取3个元素,注意这里仅仅返回随机元素,而不对集合进行任何改动。

六、spop 随机移除一个、多个元素

移除集合中的指定key的一个或多个随机元素,移除后会返回移除的元素。

spop myset 2

跟上面的srandmember区别开,虽然都是随机,但是这里的spop修改了集合。

七、smove 移动元素到目标集合

smove source destination member将指定成员 member 元素从 source 集合移动到 destination 集合。

smove myset myset2 pingguo

如果原集合不存在或不包含指定的元素,则不执行任何操作,仅返回 0。否则,移动成功。

如果目标集合里已经存在了此元素,那么命令只会移除原集合里的元素。

八、sdiff 差集

返回第一个集合与其他集合之间的差异,也可以说是第一个集合中独有的元素。

sdiff myset myset2 myset3

注意,这里差集的结果来自前面的myset

九、sinter 交集

返回给定所有给定集合的交集,当给定集合当中有一个空集时,结果也为空集。

sinter myset myset2 myset3sinter myset myset3

这里当比较3个集合myset myset2 myset3时,myset2里跟其他2个没有任何交集,所以整个结果返回空集。

十、sunion 并集

返回给定集合的并集,不存在的集合 key 被视为空集。

sunion myset myset2 myset3

集合利用差、并、交集可以用来实现一些场景的功能。比如社交软件中,把A用户关注的所有人放到一个set里,然后将B用户的粉丝放另一个set2里。
那么A, B两个用户共同关注的人就是交集了。

以上就是Redis基本数据类型Set常用操作的详细内容,更多关于Redis数据类型Set操作的资料请关注脚本之家其它相关文章!

相关文章

  • redis秒杀系统的实现

    redis秒杀系统的实现

    秒杀在很多活动大促中都可以用到,本文主要介绍了redis秒杀系统的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 使用拦截器+Redis实现接口幂思路详解

    使用拦截器+Redis实现接口幂思路详解

    这篇文章主要介绍了使用拦截器+Redis实现接口幂等,接口幂等有很多种实现方式,拦截器/AOP+Redis,拦截器/AOP+本地缓存等等,本文讲解一下通过拦截器+Redis实现幂等的方式,需要的朋友可以参考下
    2023-08-08
  • redis3.2配置文件redis.conf详细说明

    redis3.2配置文件redis.conf详细说明

    redis3.2配置详解,Redis启动的时候,可以指定配置文件,详细说明请看本文说明
    2018-03-03
  • 浅谈Redis在分布式系统中的协调性运用

    浅谈Redis在分布式系统中的协调性运用

    这篇文章主要介绍了Redis在分布式系统中的协调性运用,讲解了Redis在进程和线程的调度上以及消息队列中的作用,需要的朋友可以参考下
    2016-03-03
  • 聊聊使用RedisTemplat实现简单的分布式锁的问题

    聊聊使用RedisTemplat实现简单的分布式锁的问题

    这篇文章主要介绍了使用RedisTemplat实现简单的分布式锁问题,文中给大家介绍在SpringBootTest中编写测试模块的详细代码,需要的朋友可以参考下
    2021-11-11
  • Redis内存回收策略

    Redis内存回收策略

    Redis也会因为内存不足而产生错误 , 也可能因为回收过久而导致系统长期的停顿,因此掌握执行回收策略十分有必要,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • Redis 的 GeoHash详解

    Redis 的 GeoHash详解

    这篇文章主要介绍了Redis 的 GeoHash详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 详解Redis中的List类型

    详解Redis中的List类型

    这篇文章主要介绍了Redis中的List类型,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • redis的key出现的\xac\xed\x00\x05t\x00乱码问题及解决

    redis的key出现的\xac\xed\x00\x05t\x00乱码问题及解决

    这篇文章主要介绍了redis的key出现的\xac\xed\x00\x05t\x00乱码问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Redis通过scan查找不过期的 key(方法详解)

    Redis通过scan查找不过期的 key(方法详解)

    SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程,对Redis scan 查找 key相关知识感兴趣的朋友一起看看吧
    2021-08-08

最新评论