6.Set集合类型操作使用
Set集合类型
(1)介绍
redis的set是string类型的无序集合
set元素最大可以包含(2的32次方-1)个元素
关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(union),
交集(intersection),差集(difference)。通过这些操作可以很容易的实现类似好友推荐的
功能。
注意:每个集合中的各个元素不能重复。
(2)操作
sadd key member 添加一个string元素到key对应的set集合中,成功返回1,
如果元素已经在集合中返回0,key对应的set不存在,则创建一个只包含member元素作成员的集合。
srem key member [member] 从key对应set中移出给定元素,成功返回1
smove p1 p2 member 从p1对应set中移除member并添加p2对应set中
scard key 返回set的元素个数
sismember key member 判断member是否在set中
sinter key1 key2...keyN 返回所有给定key的交集
sunion key1 key2...keyN 返回所有给定key的并集
sdiff key1 key2...keyN 返回所有给定key的差集
smembers key 返回key对应set的所有元素,结果是无序的
(3)使用
我们模拟qq好友推荐的功能:
首先我们添加tom的好友,创建tomFri的set集合类型数据,内部有五个元素
然后创建linken的好友,创建linkenFri的set集合类型数据,内部有五个元素
取两个set集合的交集,就可以得出两个用户的共同好友:
取并集就是取得既有tom又有linken的好友,相同的数据会出现一次
取差集,并不是是除了交集数据之外的所有数据,而是sdiff key1 key2中,
只取得key1集合中没有key2的所有数据。
想查看set集合的所有内容,使用smembers指令
判断一个元素是否在集合中,使用sismember指令
将tom中的jack转移到linken的好友集合中,使用smove指令,查看set集合
目前的容量,使用scard指令
将xiaoming从tom的好友集合中清除,使用srem指令

转载请注明出处:http://blog.csdn.net/acmman/article/details/53289980
6.Set集合类型操作使用的更多相关文章
- redis 的使用 (sort set排序集合类型操作)
sort set排序集合类型 释义: sort set 是 string 类型的集合 sort set 的每个元素 都会关联一个 权 通过 权值 可以有序的获取集合中的元素 应用场合: 获取热门帖子( ...
- redis 的使用 ( set集合类型操作)
set 集合类型 释义: redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...
- 7.SortSet排序集合类型操作
Sort Set排序集合类型 (1)介绍 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权.通过权值可以有序的获取集合中的元素 该Sort Set类型适合 ...
- Python set集合类型操作总结
Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是 ...
- 8.Hash集合类型操作使用
数据类型Hash (1)介绍 hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似 Redis本身就类似于Hash的存储结构,分为key-value键值对,实际上它的Hash数据就好像 ...
- Python学习笔记——集合类型
集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset) 可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素 不可变集合是有哈希值的,能被用做字典的键或者是作为 ...
- Python中的集合类型分类和集合类型操作符解析
集合类型 数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements). Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...
- Python基础:05集合类型
Python中,集合对象是一组无序排列的可哈希的值.所以集合成员可以做字典中的键.集合中的元素都是唯一的. 集合(sets)有两种不同的类型,可变集合(set) 和 不可变集合(frozenset). ...
- redis:order set有序集合类型的操作(有序集合)
1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...
随机推荐
- CodeForces - 260C
CodeForces - 260C Little Vasya had n boxes with balls in the room. The boxes stood in a row and were ...
- 小白,你要的Java抽象类,操碎了心!
自从给小白写了两篇科普性质的文章后,我就有点一发不可收拾,觉得很有必要继续写下去.因为有读者留言"鼓励"我说,"二哥,你真的是为小白操碎了心啊!"我容易吗?我. ...
- react中redux的理解
定义 redux可以看作是flux的进阶版,主要用于react中公共状态(数据)的管理 redux底层原理 redux有一个createStore方法,这个方法用户创建公共存储空间,createSto ...
- 01_互联网基本原理和HTML入门
从"上网"说开去 1.上网就是请求数据 老师现在进行一个互联网原理的整体感知的教学,你注意,整体感知中,一些具体的细节,可能令你没有安全感(很多的知识盲点).没有关系,老师进行的是 ...
- python语法学习第九天--else和with语句
else: while/for else:正常执行完循环(非break)执行else中代码 try else:未捕捉到异常,执行else中代码 with: 语法格式: with open('666.t ...
- 画结构图的神器 Graphviz
经常看到别人的论文里各种优美的图,没想过它们是怎么来的,前两天也是在看论文的时候被推荐了一款画图软件graphviz,稍微了解了一下这个画图软件,据说是贝尔实验室的几位牛人开发出来的,试了一下觉得很不 ...
- Asp.Net Core 3.1学习-读取、监听json配置文件(7)
1.前言 文件配置提供程序默认的给我们提供了ini.json.Xml等.都是读取不同格式的文件.文件配置提供程序支持文件可寻.必选.文件变更的监视. 2.读取配置文件 主要运用的包:需要Ini.xml ...
- 使用JDBC操作MySQL
使用JDBC操作MySQL 步骤 加载驱动 连接数据库 操作数据库(增删改查) 关闭结果集,操作,数据库 准备工作 java连接MySQL的jar包 加载数据库驱动 public class Load ...
- SpringBoot2.0 @Cacheable 添加超时策略
SpringBoot2.0 @Cacheable 添加超时策略 逻辑比较简单,废话不多说,直接进入正题: 需求:SpringBoot 利用注解使缓存支持过期时间 (同@Cacheable @Cache ...
- layui 关闭弹出层方法
layer.closeAll();//疯狂模式,关闭所有层 layer.closeAll('dialog'); //关闭信息框 layer.closeAll('page');//关闭所有页面层 lay ...