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类型以及其操作的更多相关文章

  1. zset类型以及其操作

    sorted set类型 sorted sets类型以及其操作zset是set的一格升级版本,它在set的基础上增加了一格顺序属性,这一属性在添加元素的同时可以指定,每次指定后,zset会自动重新按照 ...

  2. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  3. 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:

    "/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...

  4. 知方可补不足~sqlserver中对xml类型字段的操作

    回到目录 在sqlserver中有很多种数据类型,而XML数据类型是比较新奇怪的一种格式,我们平常接触的可能比较少,用的也少,而在某些场合,使用XML类型可能会使我们的开发变简单,下面就是一种情况: ...

  5. Linux---文件类型及权限操作

    文件类型: 用ls命令查看目录下所属文件时,每行的第一个字母标识着文件对应的文件类型 '-':代表普通文件 'd':代表目录 'c':字符设备文件 'b':块设备文件 's':套接字文件 'l':符号 ...

  6. 自定义枚举类型的常用操作-附源码(xjl456852原创)

    自定义枚举类型中,假如我们有name和desc这样的属性,并在这个基础上定义了多个对象. 那么就可能用到通过name获取desc,或者通过desc获取name.通过name或者desc获取对应的枚举对 ...

  7. Android jni 编程1(对基本类型字符串的操作)

    最近一直在学安卓的jni,主要参考的是黑马程序员的视频教程,讲的确实不错. 那就自己总结一下吧,算是对学习的复习. 这篇博客也主要参考了这位博主:http://www.cnblogs.com/acti ...

  8. MongoDB中数组类型相关的操作

    概述 在MongoDB的模式中,我们经常将一些数据存储到数组类型中,即我们常见的嵌套模式设计的一种实现方式.数组的这种设计实现方式在关系数据库中是没有或者说不常见的.所以,通过本文我们来梳理一下Mon ...

  9. mysql 5.7 laravel json类型数据相关操作

    2018年10月16日18:14:21 官方文档中文翻译版 原文:https://dev.mysql.com/doc/refman/5.7/en/json.html 最后有部分实例和一个小总结 11. ...

  10. python学习Day8 三种字符类型、文件操作

    复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...

随机推荐

  1. spring boot开发为什么使用jar包

    spring boot既可以打成war发布,也可以找成jar包发布. jar包:直接通过内置tomcat运行,不需要额外安装tomcat.如需修改内置tomcat的配置,只需要在spring boot ...

  2. java语言学习笔记1

    最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ...

  3. 20145230熊佳炜《网络对抗》实验八:WEB基础

    20145230熊佳炜<网络对抗>实验八:WEB基础 实验目标 Web前端HTML:能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTM ...

  4. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】

    本文转载自: 因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大家 ...

  5. 源码编译php

    安装相关依赖: yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freet ...

  6. 爬虫之JSON

    数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...

  7. random模块中最常用的几个函数

    转自:http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html 随机整数:>>> import random> ...

  8. 如何在repeater中找到checkbox并实现全选删除

    checkbox使用客户端控件,且给repeater里边的checkbox添加ruanat=server属性表头中的chkTotal的属性一定不要加此属性....然后 全选的javascript代码  ...

  9. HTTP-API-DESIGN 怎样设计一个合理的 HTTP API (二)

    接上篇 HTTP-API-DESIGN 怎样设计一个合理的 HTTP API (一) 整个 ppt 可以去这里下载. 这一篇主要从服务端应该如何返回合理的返回值的角度,讨论如何设计一个合理的 HTTP ...

  10. 24,25-request对象

    var http = require('http'); var server = http.createServer(); server.listen() console.log(server.add ...