Redis学习第五课:Redis Set类型及操作
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。
对集合我们可以取并集、交集、差集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag功能。
Set集合操作:
sadd:向名称为Key的set中添加元素,同一集合中不能出现相同的元素值。(用法:sadd set集合名称 元素值)
127.0.0.1:6379> sadd myset1 hello
(integer) 1
127.0.0.1:6379> sadd myset1 world
(integer) 1
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
127.0.0.1:6379> sadd myset1 hello
(integer) 0
srem:删除名称为key的set中的元素。(用法:srem set集合名称 要删除的元素值)
127.0.0.1:6379> smembers myset1
1) "hello"
2) "fine"
3) "world"
127.0.0.1:6379> srem myset1 fine
(integer) 1
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
spop:随机返回并删除名称为key的set中一个元素。(用法:srem set集合名称)
127.0.0.1:6379> smembers myset1
1) "hello"
2) "world"
127.0.0.1:6379> spop myset1
"hello"
127.0.0.1:6379> smembers myset1
1) "world"
sdiff:返回所有给定key与第一个key的差集。(用法:sdiff set集合1 set集合2)
127.0.0.1:6379> smembers myset2
1) "two"
2) "one"
127.0.0.1:6379> smembers myset3
1) "three"
2) "two"
127.0.0.1:6379> sdiff myset2 myset3
1) "one"
sdiffstore:返回所有给定key与第一个key的差集,并将结果存为另一个key。(用法:sdiffstore 差集数据存入的集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sdiffstore myset5 myset3 myset4
(integer) 1
127.0.0.1:6379> smembers myset5
1) "four"
sinter:返回所有给定key的交集。(用法:sinter set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinter myset3 myset4
1) "two"
2) "one"
sinterstore:返回所有给定Set集合的交集,并将结果存为另一个set集合。(用法:sinterstore 交集结果集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinterstore myset6 myset3 myset4
(integer) 2
127.0.0.1:6379> smembers myset6
1) "one"
2) "two"
sunion:返回所有给定key的并集。(用法:sunion set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunion myset3 myset4
1) "two"
2) "one"
3) "four"
sunionstore:返回所有给定key的并集,并将结果存为另一个set集合。(用法:sunionstore 并集结果集合 set集合1 set集合2)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunionstore myset7 myset3 myset4
(integer) 3
127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"
smove:从第一个集合中移除一个元素到另一个集合中。(用法:smove 集合1 集合2 要移除的元素值)
127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> smembers myset5
1) "four"
127.0.0.1:6379> smove myset7 myset5 one
(integer) 1
127.0.0.1:6379> smembers myset5
1) "one"
2) "four"
scard:返回名称为key的set集合的元素个数。(用法:scard 集合1)
127.0.0.1:6379> smembers myset5
1) "one"
2) "four"
127.0.0.1:6379> scard myset5
(integer) 2
sismember:判断某个值是否是集合的元素。(用法:sismember 集合1 指定的元素值)
127.0.0.1:6379> smembers myset7
1) "two"
2) "four"
127.0.0.1:6379> sismember myset7 two
(integer) 1
127.0.0.1:6379> sismember myset7 five
(integer) 0
srandmember:随机返回集合中的一个元素,但不删除元素。(用法:srandmember 集合1)
127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> srandmember myset3
"four"
127.0.0.1:6379> srandmember myset3
"four"
Redis学习第五课:Redis Set类型及操作的更多相关文章
- redis学习(五) redis过期时间
redis过期时间 1.redis过期时间介绍 有时候我们并不希望redis的key一直存在.例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁.redis提供了一些命令,能够让我们对ke ...
- Redis学习(五)Redis知识点总结
一.基础概念 Q:什么是 Redis? 定义:Redis 是完全开源免费基于内存亦可持久化的,遵守 BSD 协议,是一个高性能的 key-value 数据库. 特点: 数据的持久化 :可以将内存中的数 ...
- 【Redis】Redis学习(五) Redis cluster模式详解
一般情况下,使用主从模式加Sentinal监控就可以满足基本需求了,但是当数据量过大一个主机放不下的时候,就需要对数据进行分区,将key按照一定的规则进行计算,并将key对应的value分配到指定的R ...
- redis学习教程五《管道、分区》
redis学习教程五<管道.分区> 一:管道 Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻 ...
- redis 学习(4)-- 哈希类型
redis 学习(4)-- 哈希类型 介绍 redis 中哈希键值结构: 可以看出:哈希键值包括 key,field,value 这三部分,即键,属性,值这三部分.可以这样来表示: key, (fie ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
- redis学习教程一《Redis的安装和配置》
redis学习教程一<Redis的安装和配置> Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执 ...
- C# Redis学习系列三:Redis配置主从
Redis配置主从 主IP :端口 192.168.0.103 6666 从IP:端口 192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...
- redis 学习(1)-- redis 安装与启动
redis 学习(1)-- redis 安装与启动 redis 特性 关于 redis 的介绍网上已经有很多信息了,这里我就不在详细说明了.介绍一下几个鲜明特性: 1.速度快 官方称可以达到10W的q ...
随机推荐
- SqlParameter 参数化模糊查询
sql += " and a.f_fullName like N'%'+@fullName+'%'";
- Intel微处理器学习笔记(三) 不可见寄存器
参考资料: 1. http://blog.chinaunix.net/uid-20797642-id-2495244.html 2. http://www.techbulo.com/708.htm ...
- python ros 创建节点订阅robot_pose
建立文件夹hello_rospy,再在该目录下建立子目录src,cd到该src目录,运行如下命令创建工作包 catkin_create_pkg beginner_tutorials std_msgs ...
- python 时间元组转可视化时间(自定义)
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) '2019-01-04 11:20:25'
- lua_VC6环境
1. 下载得到 lua-5.1.4.tar.gz,解压得到 文件夹"lua-5.1.4" 2. 视频[02:00] 将 lua-5.1.4/etc/luavs.bat 复制到 lu ...
- C#一套简单的单例系统
单例基类 public class CSingletonBase<TYPE> { public static TYPE Singleton { get { return m_singlet ...
- asp.net一般处理程序利用反射定位方法
asp.net的一般处理程序我想大家用得都不少,经常会如下如下的代码: using System; using System.Collections.Generic; using System.Lin ...
- English trip -- Review Unit3 Family 家人
Words daughter grandfather grandmother husband wife uncle aunt brother sister Who is ...? Loki's ... ...
- 『cs231n』作业3问题3选讲_通过代码理解图像梯度
Saliency Maps 这部分想探究一下 CNN 内部的原理,参考论文 Deep Inside Convolutional Networks: Visualising Image Classifi ...
- hdu-5465-二维BIT+nim
Clarke and puzzle Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...