文档章节

小蚂蚁学习Redis笔记(6)——Redis数据类型之无序集合set类型

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/11/15 10:00
字数 842
阅读 117
收藏 5

无序集合set类型

    set集合,它是string类型的无序集合。set是通过hash table实现的,添加删除和查找的复杂度都是0(1)。对集合我们可以取并集,交集,差集。通过这些操作我们可以实现sns中的好友推荐blog和tag功能。


set常用命令

1.    sadd    向集合中添加元素

    格式:    sadd    myset1    “allen”

    含义:    向无序集合myset1中添加元素allen,成功返回1。

2.    smembers    查看集合中的所有元素

    格式:    smembers    myset1

    含义:    查看集合myset1中的所有元素

3.    srem    删除名称为key的set中的元素

    格式:      srem    myset1    “allen” 

    含义:    从集合myset1中删除一个名为allen的元素

    注意:    删除成功返回1,删除失败返回0。

4.    spop    随机弹出并且删除一个元素

    格式:    spop    myset1    

    含义:    随机从myset1中随机弹出一个元素,并且删除掉。

    注意:    因为set是无序列表,所以只能随机弹出元素。

5.    sdiff    返回两个集合的差集

    格式:    sdiff    myset1    myset2

    含义:    比较两个集合的差集,并且返回myset1中的差集。

    注意:    哪个集合在前,返回哪个集合的差集。比较上例中,返回的是myset1。

6.    sdiffstore    返回两个集合的差集,并且把返回的差集放入第三个集合中

    格式:    sdiffstore    myset3    myset1    myset2

    含义:    比较集合myset1和myset2的差集,并且放入第三个集合myset3中。

7.    sinter    返回给定集合的交集。

    格式:    sinter    myset1    myset2

    含义:    比较集合myset1和myset2的交集,并且返回。

8.    sinterstore    返回给定集合的交集,并且把返回的交集放入第三个集合中

    格式:    sinterstore    myset4    myset1    myset2

    含义:    比较集合myset1和myset2的交集,并且放入第三个集合myset4中

9.    sunion    返回给定集合的并集。

    格式:    sunion    myset1    myset2

    含义:    比较集合myset1和myset2的并集,并且返回。

10.    sunionstore    返回给定集合的并集,并且把返回的交集放入第三个集合中

    格式:    sunionstore    myset5    myset1    myset2

    含义:    比较集合myset1和myset2的并集,并且放入第三个集合myset5中

11.    smove    从一个集合中拿出一个元素,并且放入到另一个集合中去。

    格式:    smove    myset1    myset2    “allen1”

    含义:    从集合myset1中拿出allen1,放置到集合myset2中去。成功返回1,失败返回0。 

    例子:    

            127.0.0.1:6379> smembers myset1

            1) "allen1"

            2) "1"

            3) "2"

            4) "3"

            127.0.0.1:6379> smembers myset2

            1) "3"

            2) "5"

            127.0.0.1:6379> smove myset1 myset2 "allen1"

            (integer) 1

            127.0.0.1:6379> smembers myset2

            1) "allen1"

            2) "5"

            3) "3"

            127.0.0.1:6379> 

            127.0.0.1:6379> smembers myset1

            1) "1"

            2) "2"

            3) "3"

12.    scard    返回集合中元素的个数

    格式:    scard    myset1

    含义:    返回集合myset1中,元素的个数。

13.    sismember    判断元素是否属于这个集合

    格式:    sismember    myset2    "allen1"

    含义:    判断元素allen1,是否属于集合myset2。是,返回1,不是,返回0。

14.    srandmember    随机返回一个元素,但不删除。

    格式:    srandmember    myset2

    含义:    随机返回集合myset2中的一个元素,但是不删除。和spop形成对比,spop是弹出,也就是会删除的。


学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

嗜学如命的小蚂蚁
粉丝 145
博文 161
码字总数 100864
作品 0
郑州
程序员
私信 提问
Redis学习笔记——初级

原文地址:http://www.cnblogs.com/kaituorensheng/p/5244347.html 阅读目录 1. Redis是什么、特点、优势 2. redis安装(Linux)、启动、退出、设置密码、远程连接 3. Reis key 4. Redis数据...

引鸩怼孑
2016/05/30
54
0
Redis总结

一、基本概念 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 ...

冰-冰
2016/08/30
50
0
Redis学习笔记之Redis数据类型(四)

Redis的五大数据类型 1.1 String(字符串) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思...

残风vs逝梦
2016/08/07
44
0
redis学习笔记(二)之数据类型

redis 一共分为五中基本数据类型:String、Hash、List、Set、Zset,本文只对这五中类型进行基本介绍,罗列一些常用的命令。 一、字符串类型(String) 字符串类型是redis中最基本的类型,也是...

憨豆公子
2016/08/18
23
0
Redis学习笔记之基本数据结构

Redis基础数据结构 Redis有5种基本数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)、zset(有序集合) 字符串string 字符串类型是Redis的value最简单的数据结构,类似与Java语言...

smileNicky
2018/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志

目前,容器服务Windows Kubernetes支持将业务容器产生的stdout输出、日志文件同步到阿里云日志服务(SLS)进行统一管理。 支撑组件安装 在Windows Kubernetes集群安装界面勾选使用日志服务,...

阿里云云栖社区
30分钟前
0
0
sql查询问题收集

sql的使用容易犯的错误 1、ISNULL使用 在多表关联时,最好只使用到最外层,不然会出现 空值。 sql的使用规范: 1,尽量避免大事务操作,慎用holdlock字句,提高系统并发能力。 2,尽量避免反...

轻轻的走过
50分钟前
4
0
抓包工具整理

tcpdump 常用与linux服务器 wireshark pc端抓包利器 Fiddler web抓包

以谁为师
57分钟前
3
0
彻底理解startActivity的启动过程这一篇就够了

基于Android 6.0的源码剖析, 分析android Activity启动流程,相关源码: frameworks/base/services/core/java/com/android/server/am/ - ActivityManagerService.java - ActivityStackSuper......

天王盖地虎626
今天
8
0
git 删除远程提交记录

不小心把密码提交到github怎么办? 1.切换到新的分支 git checkout --orphan latest_branch 缓存所有文件(除了.gitignore中声名排除的) git add -A 提交跟踪过的文件(Commit th...

18y
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部