set类型以及其操作
sets类型
sets类型以及操作
Set是无序集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd
向名称为key的set中添加元素,返回添加成功的个数
127.0.0.1:> sadd key member [member ...]
127.0.0.1:> sadd myset1 one
(integer)
127.0.0.1:> sadd myset1 two three
(integer)
smembers
查看集合元素
127.0.0.1:> smembers key
127.0.0.1:> smembers myset1
) "one"
) "two"
) "three"
srem
删除名称为key的set中元素,返回成功执行的个数
127.0.0.1:> srem key member [member ...]
127.0.0.1:> srem myset1 one
(integer)
127.0.0.1:> smembers myset1
) "two"
) "three"
spop
随机返回并删除名称为key的set中的一个元素
spop key [count]
127.0.0.1:> spop myset1
) "two"
) "three"
127.0.0.1:> smembers myset1
(empty list or set)
sdiff
返回所有给定key与第一个key的差集
谁在前面以谁为标准,返回其他集合少于标准的
127.0.0.1:> sdiff key [key ...]
127.0.0.1:> smembers myset2
) "two"
) "four"
) "three"
127.0.0.1:> smembers myset1
) "one"
) "two"
) "three"
127.0.0.1:> sdiff myset1 myset2
) "one"
127.0.0.1:> sdiff myset2 myset1
) "four"
sdiffstore
返回两个集合的差集,并将差集存储到另一个集合里面
127.0.0.1:> sdiffstore destination key [key ...]
127.0.0.1:> sdiffstore myset3 myset1
(integer)
127.0.0.1:> smembers myset3
) "one"
) "two"
) "three"
127.0.0.1:> sdiff myset4 myset1 myset2
(empty list or set)
127.0.0.1:> smembers myset1
) "one"
) "two"
) "three"
127.0.0.1:> smembers myset2
) "two"
) "four"
) "three"
127.0.0.1:> sdiffstore myset4 myset1 myset2
(integer)
127.0.0.1:> smembers myset4
) "one"
sinter
返回所有给定key的交集
127.0.0.1:> sinter key [key ...]
127.0.0.1:> smembers myset1
) "one"
) "two"
) "three"
127.0.0.1:> smembers myset2
) "two"
) "four"
) "three"
127.0.0.1:> sinter myset1 myset2
) "two"
) "three"
sinterstore
返回两个集合的交集并且储存在指定集合内
127.0.0.1:> sinterstore destination key [key ...]
127.0.0.1:> sinterstore myset4 myset1 myset2
(integer)
127.0.0.1:> smembers myset4
) "two"
) "three"
sunion
返回所有给定集合的并集
127.0.0.1:> sunion key [key ...]
127.0.0.1:> smembers myset1
) "one"
) "two"
) "three"
127.0.0.1:> smembers myset2
) "two"
) "four"
) "three"
127.0.0.1:> sunion myset1 myset2
) "one"
) "two"
) "four"
) "three"
sunionstrore
返回给顶集合的并集,并且存储在另一个集合
127.0.0.1:> sunionstore destination key [key ...]
127.0.0.1:> sunionstore myset5 myset1 myset2
(integer)
127.0.0.1:> smembers myset5
) "one"
) "two"
) "four"
) "three"
smove
从个一的个key中的对应的set中移除member并添加到第二个对应的set中
127.0.0.1:> smove source destination member
127.0.0.1:> smembers myset1
) "one"
) "two"
127.0.0.1:> smembers myset2
) "two"
) "four"
) "three"
127.0.0.1:> smove myset1 myset2 one
(integer)
127.0.0.1:> smembers myset1
) "two"
127.0.0.1:> smembers myset2
) "one"
) "two"
) "four"
) "three"
scard
返回名称为key的集合中的集合的个数
127.0.0.1:> scard key
127.0.0.1:> scard myset1
(integer)
127.0.0.1:> scard myset2
(integer)
sismember
测试某个元素是不是某个集合的元素
127.0.0.1:> sismember key member
127.0.0.1:> sismember myset1 one
(integer)
127.0.0.1:> sismember myset two
(integer)
127.0.0.1:> smembers myset1
) "two"
127.0.0.1:> sismember myset1 two
(integer)
srandmember
随机返回集合中的一个元素,但不删除
127.0.0.1:> srandmember key [count]
127.0.0.1:> srandmember myset2
"four"
127.0.0.1:> srandmember myset2
"one"
127.0.0.1:> srandmember myset2
) "one"
) "two"
) "three"
) "four"
set类型以及其操作的更多相关文章
- zset类型以及其操作
sorted set类型 sorted sets类型以及其操作zset是set的一格升级版本,它在set的基础上增加了一格顺序属性,这一属性在添加元素的同时可以指定,每次指定后,zset会自动重新按照 ...
- 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!
转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...
- 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:
"/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...
- 知方可补不足~sqlserver中对xml类型字段的操作
回到目录 在sqlserver中有很多种数据类型,而XML数据类型是比较新奇怪的一种格式,我们平常接触的可能比较少,用的也少,而在某些场合,使用XML类型可能会使我们的开发变简单,下面就是一种情况: ...
- Linux---文件类型及权限操作
文件类型: 用ls命令查看目录下所属文件时,每行的第一个字母标识着文件对应的文件类型 '-':代表普通文件 'd':代表目录 'c':字符设备文件 'b':块设备文件 's':套接字文件 'l':符号 ...
- 自定义枚举类型的常用操作-附源码(xjl456852原创)
自定义枚举类型中,假如我们有name和desc这样的属性,并在这个基础上定义了多个对象. 那么就可能用到通过name获取desc,或者通过desc获取name.通过name或者desc获取对应的枚举对 ...
- Android jni 编程1(对基本类型字符串的操作)
最近一直在学安卓的jni,主要参考的是黑马程序员的视频教程,讲的确实不错. 那就自己总结一下吧,算是对学习的复习. 这篇博客也主要参考了这位博主:http://www.cnblogs.com/acti ...
- MongoDB中数组类型相关的操作
概述 在MongoDB的模式中,我们经常将一些数据存储到数组类型中,即我们常见的嵌套模式设计的一种实现方式.数组的这种设计实现方式在关系数据库中是没有或者说不常见的.所以,通过本文我们来梳理一下Mon ...
- mysql 5.7 laravel json类型数据相关操作
2018年10月16日18:14:21 官方文档中文翻译版 原文:https://dev.mysql.com/doc/refman/5.7/en/json.html 最后有部分实例和一个小总结 11. ...
- python学习Day8 三种字符类型、文件操作
复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...
随机推荐
- linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式
linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式 可以修复网络连接(浏览器返回 server not found)
- 怎么解决teamviewer检测商业用途无法使用的问题
https://jingyan.baidu.com/article/d5c4b52be51162da560dc517.html
- C/C++:函数的编译方式与调用约定以及extern “C”的使用
转自:https://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/04/2891908.html 函数在C++编译方式与C编译方式下的主要不同在于:由 ...
- USBasp制作资料及全过程(菜鸟版)
源:USBasp制作资料及全过程(菜鸟版) 一.usbasp 的一般性介绍: 1.下载线,是“ISP”(In System Programmability:“在系统编程”)或“IAP”(In Appl ...
- GRUB2 分析 (四)
接上一篇 kernel.img由startup.S以及一堆c文件编译而成.这是一个ELF格式的文件.(其实前面的boot.img. diskboot.img.lzma_decompress.img本来 ...
- Web前端开发学习笔记(一)
最近在复习Web前端的开发知识,于是就把大二上学期曾经学过的东西拿出来复习一遍,把自己在做曾经的作业时遇到有意义的点都记下来吧. Homework1:http://my.ss.sysu.edu.cn/ ...
- GoEasyWeb实时推送
GoEasyWeb实时推送,轻松实现实时消息推送. Web页面订阅(约5行代码),服务器端推送(2行代码)就可以轻松实现,而且在高并发时消息推送稳定. 自己完全可以只花五分钟写出属于自己的第一个实时推 ...
- Could not initialize class sun.awt.X11FontManager 异常问题
查了很多资料都是建议在 catalina.sh 中增加 -Djava.awt.headless=true \ 的配置. 加了没有效果. 后来发现是因为JDK版本问题,将JDK 8换成 JDK 7后 ...
- 20145324 Java实验一
北京电子科技学院(BESTI) 实 验 报 告 课程:JAVA 班级:1453 姓名:王嘉澜 学号:20145324 成绩: 指导教师:娄嘉鹏 实验日期:2016.4.8 实验密级: 预习程度: 实验 ...
- platform_device和platform_driver的注册过程,及probe函数何时调用的分析 ⭐⭐⭐
add platform_device之后,需要注意的一个地方是这里,add是通过系统初始化里边调用platform_add_devices把所有放置在板级platform_device数组中的所有 ...