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 ...
随机推荐
- 浙大pat1020题解
1020. Tree Traversals (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Suppo ...
- iOS项目导航栏返回按钮
最近iOS项目中要求导航栏的返回按钮只保留那个箭头,去掉后边的文字,在网上查了一些资料,最简单且没有副作用的方法就是 [[UIBarButtonItem appearance] setBackButt ...
- wefwewewe
<a hred="https://www.baidu.com">dssf</a>
- 私有云Mariadb集群搭建
MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性, 同时提高系统的负载能力,集群部署是必不可少的. MariaDB Gale ...
- 101个Linq例子(40-60)
GroupBy - Simple 2 public void Linq41() { string[] words = { "blueberry", "chimpanzee ...
- ios 点击放大图片,保存至手机相册
直接贴.m文件代码 #import "UIImageView+Scale.h" static CGRect oldframe; @implementation UIImageVie ...
- Documention
Object.bool Does the object exist? Object.name Components share the same name with the game object a ...
- IDEA Mybatis 找不到映射器xml文件
用IDEA新建了一个测试MyBatis工程,工程目录如下 其中config是MyBatis的配置文件,内容如下 <?xml version="1.0" encoding=&q ...
- -webkit-overflow-scrolling
-webkit-overflow-scrolling 属性 控制元素在移动设备上是否使用滚动回弹效果. 取值 auto 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止. touch 使 ...
- GitHub常见错误解决办法
如果輸入$ git remote add origin git@github.com:djqiang(github帳號名)/gitdemo(項目名).git 提示出錯信息:fatal: remote ...