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. asp.net Mvc 使用uploadify 上传文件 HTTP 302 Error

    CSHTML代码 @{ if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) { <input type=" ...

  2. JS变量比较陷阱

    我们觉得JS简单是因为它是弱类型的语言,不像java那样对对类型那样敏感,但js也有其不尽人意的地方. 在java中我们无法将数字与字符串直接比较,而js能,而且能直接转换成数值比较,但是如果是字符串 ...

  3. 2017阿里C++研发工程师-校招-笔试模拟

    题目描述: 猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生00下一对小兔,之后开始每年都会生下一对小兔.生下的小兔又会以同样的方式继续繁殖. 兔子的寿命都是x(x>=3) ...

  4. LeetCode (262):Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  5. 构造函数挨个过 —— String()

    本篇整理JavaScript中构造函数String的相关知识,主要分为以下三个部分: 构造函数String()的作用与使用方式: String()的属性和方法: 字符串对象实例属性和方法: 一 构造函 ...

  6. Permission denied: mod_fcgid

    [Tue Jun 16 13:29:08 2015] [warn] (13)Permission denied: mod_fcgid: spawn process /var/www/cgi-bin/g ...

  7. CentOS 7 SSH远程证书登陆

    SSH远程证书登陆是使用"公私钥"认证的方式来进行SSH登录. 1.创建公私钥 创建方式有很多种,比如说通用ssh连接工具创建,然后把公钥上传到Server主机对应的用户目录下: ...

  8. javascript中关于&& 和 || 表达式的小技巧分享

    如果你还是新手, 而且读完所有这些技巧的详解和每种技巧是如果工作的以后运用它们, 你会写出更加简练高效的JavaScript程序. 确实, JavaScript高手已经运用这些技巧写出了很多强大, 高 ...

  9. sphinx 安装使用

    一.linux(centos)下安装源码包 1.下载  wget http://sphinxsearch.com/files/sphinx-2.3.1-beta.tar.gz 2.安装   切换目录到 ...

  10. PyTorch源码解读之torchvision.transforms(转)

    原文地址:https://blog.csdn.net/u014380165/article/details/79167753 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...