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


Posted in Redis onJune 01, 2022

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

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

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

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

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

sadd myset hello pingguo test

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

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

二、smembers 查看集合

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

smembers myset

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

三、scard 元素数量

返回集合中元素的数量。

scard myset

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

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

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

srem myset hello test

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

五、srandmember 随机元素

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

srandmember myset 3

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

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

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

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

spop myset 2

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

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

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

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

smove myset myset2 pingguo

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

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

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

八、sdiff 差集

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

sdiff myset myset2 myset3

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

九、sinter 交集

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

sinter myset myset2 myset3sinter myset myset3

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

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

十、sunion 并集

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

sunion myset myset2 myset3

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

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

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


Tags in this post...

Redis 相关文章推荐
详解Redis实现限流的三种方式
Apr 27 Redis
详解RedisTemplate下Redis分布式锁引发的系列问题
Apr 27 Redis
基于Redis位图实现用户签到功能
May 08 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
使用Redis实现实时排行榜功能
Jul 02 Redis
Redis源码阅读:Redis字符串SDS详解
Jul 15 Redis
解析redis hash应用场景和常用命令
Aug 04 Redis
Redis如何实现分布式锁
Aug 23 Redis
redis中lua脚本使用教程
Nov 01 Redis
解决Redis启动警告问题
Feb 24 Redis
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 Redis
Redis基本数据类型哈希Hash常用操作命令
Jun 01 #Redis
Redis基本数据类型Zset有序集合常用操作
Jun 01 #Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 #Redis
Redis特殊数据类型HyperLogLog基数统计算法讲解
Jun 01 #Redis
Redis特殊数据类型bitmap位图
Jun 01 #Redis
浅谈Redis的事件驱动模型
May 30 #Redis
Redis 异步机制
You might like
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
初学JavaScript第二章
2008/09/30 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js中运算符&& 和 || 的使用记录
2014/08/21 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
python自动翻译实现方法
2016/05/28 Python
Python模拟用户登录验证
2017/09/11 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
区域销售经理职责
2013/12/22 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
接待员岗位职责范本
2015/04/15 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
大学生党课心得体会
2016/01/07 职场文书
七年级思品教学反思
2016/02/20 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers