redis数据类型:sets
sets类型及操作:
set是集合,它是string类型的无序集合。set是通过hash table实现的,
添加、删除和查找的复杂度都是O(1).对集合我们可以取并集、交集、差集。
通过这些操作我们可以实现sns中好友推荐(如QQ)和blog的tag(标签)功能。
sadd方法:添加元素
smembers方法:查看集合的所有成员
127.0.01:6379> SADD set "one" "two"
(integer) 2
127.0.01:6379> SMEMBERS set
1) "two"
2) "one"
srem方法:删除集合元素
127.0.01:6379> SMEMBERS set
1) "two"
2) "one"
127.0.01:6379> SREM set "one"
(integer) 1
127.0.01:6379> SMEMBERS set
1) "two"
spop方法:随机返回并删除名称为key的集合元素
127.0.01:6379> sadd set "two"
(integer) 0
127.0.01:6379> sadd set "one"
(integer) 1
127.0.01:6379> sadd set "three"
(integer) 1
127.0.01:6379> sadd set "four"
(integer) 1
127.0.01:6379> sadd set "five"
(integer) 1
127.0.01:6379> spop set
"five"
127.0.01:6379> spop set
"one"
127.0.01:6379> spop set
"three"
127.0.01:6379>
sdiff方法:两个集合的差集
127.0.01:6379> sadd set1 "one" "two"
(integer) 2
127.0.01:6379> sadd set2 "three" "two"
(integer) 2
127.0.01:6379> SMEMBERS set1
1) "two"
2) "one"
127.0.01:6379> SMEMBERS set2
1) "two"
2) "three"
127.0.01:6379> SDIFF set1 set2
1) "one"
127.0.01:6379> SDIFF set2 set1
1) "three"
sdiffstore方法:将两个集合的差集存到一个集合中
127.0.01:6379> SMEMBERS set2
1) "one"
2) "two"
3) "three"
127.0.01:6379> SMEMBERS set1
1) "three"
127.0.01:6379> SDIFF set1 set2
(empty list or set)
127.0.01:6379> SDIFF set2 set3
1) "three"
2) "two"
3) "one"
127.0.01:6379> SDIFF set2 set1
1) "two"
2) "one"
127.0.01:6379> SDIFFstore set3 set2 set1
(integer) 2
127.0.01:6379> SMEMBERS set3
1) "two"
2) "one"
sinter取两个集合的交集:
127.0.01:6379> sinter set1 set2
1) "three"
sinterstore 返回所有给定key的交集,并将结果存到另一个key
127.0.01:6379> sinterstore set4 set1 set2
(integer) 1
127.0.01:6379> SMEMBERS set4
1) "three"
sunion返回所有给定key的集合的并集
127.0.01:6379> sunion set1 set2
1) "two"
2) "one"
3) "three"
sunionstore 将并集存储到另一个集合中
127.0.01:6379> sunionstore set5 set1 set2
(integer) 3
127.0.01:6379> SMEMBERS set5
1) "two"
2) "one"
3) "three"
smove方法:从第一个key对应的set中指定元素移动到第二个集合中
127.0.01:6379> SMEMBERS set5
1) "two"
2) "one"
3) "three"
127.0.01:6379> smove set5 set6 one
(integer) 1
127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SMEMBERS set6
1) "one"
scard方法:查看集合中的元素个数
127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> scard set5
(integer) 2
sismember方法:测试指定的元素是否是集合中的元素
127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SISMEMBER set5 "two"
(integer) 1
srandmember方法:随机返回名称为key的set的一个元素,但不删除元素
127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"two"
redis数据类型:sets的更多相关文章
- Redis数据类型:Sorted Sets操作指令
Redis数据类型:Sorted Sets操作指令 Sorted Sets常用操作指令 Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score ...
- redis数据类型及使用场景
Redis数据类型 String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令: set,get,decr,incr,mge ...
- 深入理解redis数据类型
转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9720033.html redis的存储模型 redis不是普通的键值对存储,它实际上是一个数据结构存储服务器 ...
- Redis数据类型和常用命令
Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...
- redis数据类型及订阅操作
Redis数据类型详解 Redis键/值介绍 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如“foo”的简单字符串到一个JPG文件的内容都可以.空字符串也是有效k ...
- Redis数据类型简介(十分钟快速学习Redis)
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- Redis入门到放弃系列-redis数据类型
Redis数据类型? Redis 提供一些常用的数据类型:Strings.Lists.Sets.Sorted sets.Hashes.Arrays.Bitmap.Streams Strings(字符串 ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis数据类型介绍
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- redis数据类型
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
随机推荐
- Android使用Eclipse遇到"java.lang.ClassNotFoundException"
最近遇到个Android Jar的问题,找了几天才找到root cause. 在此记录下. 我们的Android项目需要使用一个供应商的Jar. 我们使用的开发环境为:Eclipse + ADT插件( ...
- 第一百一十八节,JavaScript,动态加载脚本和样式
JavaScript,动态加载脚本和样式 一动态脚本 当网站需求变大,脚本的需求也逐步变大.我们就不得不引入太多的JS脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本. ...
- C#项目间循环引用的解决办法,有图有真相
C#项目间循环引用的解决办法,有图有真相 程序间的互相调用接口,c#禁止互相引用,海宏软件,20160315 /// c#禁止互相引用,如果项目[订单]中有一个orderEdit单元,要在项目[进销存 ...
- Apache 2.4.16、PHP5.6.11安装教程
以前我写过Apache2.4和php5.5的安装教程,但是后来我自己跟着自己写的东西做时发现有很多问题,这里把这些问题重新修正,再写一个教程,供大家参考. 注意:WinXP系统请选择旧版本Apache ...
- Form提交时隐藏Token验证
前端声称一个Token @Html.AntiForgeryToken() 后台对Token进行验证 AntiForgery.Validate();
- Log4J1升级Log4J2
近期,碰到需要将项目中的Log4J1升级到Log4J2,现进行下总结.交代下技术背景:web项目,基于Java + Maven 1. 依赖 <dependency> <groupId ...
- jarring type lambda
object IntStateMonad extendsMonad[({type IntState[A] = State[Int, A]})#IntState] {...}This syntax ca ...
- jquery 复选框
jquery 选中复选框 $("input[type='checkbox']").prop("checked", true); jquery 判断复选框是否被选 ...
- typeof使用笔记
typeof操作符返回一个字符串,表示未经计算的操作数的类型 以下是可能值的列表 类型 结果 Undefined "undefined" Null "nu ...
- 重读The C programming Lanuage 笔记三:简单计算器程序
//简单计算器 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <str ...