Set里面的值是不能重复的

Set设置值(头部):sadd myset hello

Set获取值:smembers myset

检查Set是否包含某个元素:sismember myset hello

127.0.0.1:6379> sadd myset hello #给myset添加元素
(integer) 1
127.0.0.1:6379> sadd myset world
(integer) 1
127.0.0.1:6379> smembers myset #获取myset的元素
1) "world"
2) "hello"
127.0.0.1:6379> sismember myset hello
(integer) 1

查看Set包含的元素个数:scard myset

127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
127.0.0.1:6379> scard myset #查看myset包含的元素个数
(integer) 2

移除Set中某个元素:srem myset hello

127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
127.0.0.1:6379> srem myset hello #从myset中移除hello元素
(integer) 1
127.0.0.1:6379> smembers myset
1) "world"

随机抽取Set中的元素:srandmember myset

127.0.0.1:6379> smembers myset
1) "lenovo"
2) "sanxing"
3) "iphone"
4) "htc"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset #随机抽取一个元素
"htc"
127.0.0.1:6379> srandmember myset
"sanxing"
127.0.0.1:6379> srandmember myset
"lenovo"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset
"htc"
127.0.0.1:6379> srandmember myset
"iphone"
127.0.0.1:6379> srandmember myset 2 #随机抽取指定数量的元素
1) "sanxing"
2) "lenovo"

随机删除Set中的元素:spop myset

127.0.0.1:6379> smembers myset
1) "lenovo"
2) "sanxing"
3) "iphone"
4) "htc"
127.0.0.1:6379> spop myset #随机删除一个元素
"htc"
127.0.0.1:6379> spop myset #随机删除一个元素
"sanxing"
127.0.0.1:6379> smembers myset
1) "lenovo"
2) "iphone"

将指定元素从一个Set集合移动到另一个Set集合:smove myset otherset iphone

127.0.0.1:6379> smembers myset
1) "lenovo"
2) "iphone"
127.0.0.1:6379> smove myset otherset iphone #把iphone元素从myset移动到otherset集合中
(integer) 1
127.0.0.1:6379> smembers myset
1) "lenovo"
127.0.0.1:6379> smembers otherset
1) "iphone"

差集:sdiff k1 k2

交集:sinter k1 k2

并集:sunion k1 k2

127.0.0.1:6379> smembers k1
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> smembers k2
1) "d"
2) "c"
3) "e"
127.0.0.1:6379> sdiff k1 k2 #查看k1对比k2集合的差集
1) "a"
2) "b"
127.0.0.1:6379> sinter k1 k2 #查看k1与k2集合的交集 比如:查看共同好友
1) "c"
127.0.0.1:6379> sunion k1 k2 #查看k1与k2集合的并集
1) "b"
2) "c"
3) "a"
4) "d"
5) "e"

redis: Set集合类型(五)的更多相关文章

  1. redis数据类型-集合类型

    集合类型 在集合中的每个元素都是不同的,且没有顺序. 一个集合类型(set)键可以存储至多2 32-1个(相信这个数字对大家来说已经很熟悉了)字符串. 集合类型的常用操作是向集合中加入或删除元素.判断 ...

  2. redis:set集合类型的操作(无序集合)

    1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...

  3. 怎样在Redis通过StackExchange.Redis 存储集合类型List

    StackExchange 是由StackOverFlow出品, 是对Redis的.NET封装,被越来越多的.NET开发者使用在项目中. 绝大部分原先使用ServiceStack的开发者逐渐都转了过来 ...

  4. redis有序集合类型sort set

    redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,也没有重复的元素,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 ...

  5. redis之(七)redis的集合类型的命令

    [一]增加/删除元素 --->命令:SADD key member [member...] --->向集合键中添加一个,或多个元素.如果键不存在,则创建.如果元素存在,则忽略不执行.返回值 ...

  6. Redis有序集合类型

    命令 增加元素 ZADD score member [score member ...] > ZADD scoreboard 89 Tom 76 Peter 100 David (integer ...

  7. redis 有序集合类型

  8. Redis常用命令入门4:集合类型

    集合类型 之前我们已经介绍过了最基本的字符串类型.散列类型.列表类型,下面我们一起学习一下集合类型. 集合类型也是体现redis一个比较高价值的一个类型了.因为Redis的集合类型,所以我们可以很容易 ...

  9. redis有序集合数据类型---sortedset

    一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...

  10. Redis从基础命令到实战之有序集合类型(SortedSet)

    有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...

随机推荐

  1. .Net Web Api返回Json数据中原对象变量名大小写问题

    这两天在工作中使用SignalR的WebSocket做数据实时传递的功能开发,在后端主动向前端广播数据以Json传递时,前端获取的Json中对应类的变量名首字母默认传递的是大写.而前端一直获取到的后台 ...

  2. css 动画 transition和animation

    本文参考:http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html 1. transition基本用法: < ...

  3. 使用 nodejs 对文件进行批量重命名

    0. 前言 从B站下载了一点视频,硕鼠自动将标题添加到了每个文件名的前面,导致文件名过长,不方面查看文件的具体内容. 虽然只有二十几个文件,但是手动删除前缀还是个不小的工作量,还有可能删除错误.考虑到 ...

  4. Blazor入门笔记(4)-组件的生命周期

    1.环境 VS2019 16.5.1.NET Core SDK 3.1.200Blazor WebAssembly Templates 3.2.0-preview2.20160.5 2.简介 Blaz ...

  5. canvas 悬浮效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Linux网络安全篇,进入SELinux的世界(三)

    SELinux防火墙配套的服务 一.auditd 1.基本功能 将详细信息写入到 /var/log/audit/audit.log文件 2.设置开机自动启动 chkconfig --list audi ...

  7. C语言 刷新缓冲区

    fflush int fflush(FILE* stream); 用于清空文件缓冲区,如果文件是以写的方式打开 的,则把缓冲区内容写入文件. eg: 1. #include <stdio.h&g ...

  8. Qt开发环境搭建 - Windows + VS2010 + VS插件

    Qt 开发环境搭建 - Windows+VS2010+VS插件 1.Qt在Windows平台下的三种开发环境 方案 编辑器 编译器 调试器 一 Qt Creator MinGW GDB 二 Qt Cr ...

  9. mysql全文索引浅谈

    原文链接:http://www.cnblogs.com/robertsun/p/5999588.html 对于一些简单的检索可以通过mysql自带的全文索引及 MATCH AGAINST 查询语句实现 ...

  10. Web前端必备-Nginx知识汇总

    一.Nginx简介 Nginx是一个高性能.轻量级的Web和反向代理服务器, 其特点是占有内存及资源少.抗并发能力强. Nginx安装简单.配置简洁.启动快速便捷.支持热部署.支持 SSL.拥有高度模 ...