Redis的数据结构之Set
存储Set
和List类型不同的是,Set集合中不允许出现重复的元素
Set可包含的最大元素数量是4294967295
存储set常用命令:
添加/删除元素
获取集合中的元素
集合中的差集运算
集合中的交集运算
集合中的并集元算
扩展命令
sadd key member [member ...]
添加set元素
127.0.0.1:6379> sadd set1 a b c
(integer) 3
添加三个元素
smembers key
查看指定key集合元素
127.0.0.1:6379> smembers set1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> sadd set1 a d e
(integer) 2
127.0.0.1:6379> smembers set1
1) "c"
2) "d"
3) "b"
4) "a"
5) "e"
继续添加元素 发现 重复元素不再添加
srem key member [member ...]
删除元素
127.0.0.1:6379> srem set1 a d
(integer) 2
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
删除两个元素
sismember key member
判断某个元素是否存在 返回1 表示存在 返回0表示不存在
127.0.0.1:6379> sismember set1 a
(integer) 0
127.0.0.1:6379> sismember set1 b
(integer) 1
sdiff计算差集
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> sadd set3 b c d e
(integer) 4
127.0.0.1:6379> sdiff set2 set3
1) "a"
127.0.0.1:6379> sdiff set3 set2
1) "d"
2) "e"
我们发现 集合的顺序不同 结果不一样 根据前者参考
sinter计算交集
127.0.0.1:6379> sinter set2 set3
1) "c"
2) "b"
sunion计算并集
127.0.0.1:6379> sunion set2 set3
1) "e"
2) "a"
3) "b"
4) "c"
5) "d"
scard计算元素总数
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> scard set1
(integer) 3
srandmember 随机取一个元素
127.0.0.1:6379> srandmember set1
"c"
127.0.0.1:6379> srandmember set1
"e"
sdiffstore 把差集结果存储到新集合中
127.0.0.1:6379> smembers set2
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> smembers set3
1) "c"
2) "e"
3) "d"
4) "b"
127.0.0.1:6379> sdiffstore r1 set2 set3
(integer) 1
127.0.0.1:6379> smembers r1
1) "a"
sinterstore 把交集结果存储到新集合中
127.0.0.1:6379> sinterstore r2 set2 set3
(integer) 2
127.0.0.1:6379> smembers r2
1) "c"
2) "b"
sunionstore把并集结果存储到新集合中
127.0.0.1:6379> sunionstore r3 set2 set3
(integer) 5
127.0.0.1:6379> smembers r3
1) "e"
2) "a"
3) "b"
4) "c"
5) "d"
存储Set使用场景
跟踪一些唯一性数据
用于维护数据对象之间的关联关系
Redis的数据结构之Set的更多相关文章
- Redis基本数据结构总结之STRING和LIST
Redis基本数据结构总结前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们 ...
- Redis基本数据结构总结之SET、ZSET和HASH
Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我 ...
- Redis各种数据结构性能数据对比和性能优化实践
很对不起大家,又是一篇乱序的文章,但是满满的干货,来源于实践,相信大家会有所收获.里面穿插一些感悟和生活故事,可以忽略不看.不过听大家普遍的反馈说这是其中最喜欢看的部分,好吧,就当学习之后轻松一下. ...
- 聊一聊Redis的数据结构
如果没有记错的话,应该是在两个月前把 我们经常看到此类的文章: Redis的五种数据结构 Redis的数据结构以及对应的使用场景 其实以数据结构这个词去说明Redis的String.Hash.List ...
- Redis学习——数据结构介绍(四)
一.简介 作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) .List(列表) .Set(集合) .Hash(哈希) .Zset(有序集合) ...
- Redis常用数据结构
Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...
- Redis的数据结构、通用操作及其特性
Redis的数据结构 五种数据类型: 字符串(String).字符串列表(list).字符串集合(set).有序字符串集合(sorted set).哈希(hash) key定义的注意点: 不要过长,不 ...
- Redis学习笔记之Redis基本数据结构
Redis基础数据结构 Redis有5种基本数据结构:String(字符串).list(列表).set(集合).hash(哈希).zset(有序集合) 字符串string 字符串类型是Redis的va ...
- 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...
- Redis的数据结构
Redis的数据结构 redis是一种高级的key-value的存储系统,其中value支持五种数据类型. 字符串(String) 哈希(hash) 字符串列表(list) 字符串集合(set) 有序 ...
随机推荐
- MySQL批量更新字段url链接中的域名
1. 首先进行数据库备份 2. SQL语句 UPDATE 表名 SET 字段 = REPLACE(字段, '待更新的内容','替换值'); eg: UPDATE 98k_images SET url ...
- java 读取本地文件并转换为byte数组
private byte[] InputStream2ByteArray(String filePath) throws IOException { InputStream in = new File ...
- Python内置函数之classmetho staticmethod
当对类的静态属性进行修改时(不需要借助于对象就行类静态属性的修改) class Goods: discount = 0.5 def __init__(self,name,price): self.na ...
- 解码escape类型的unicode
content = Regex.Unescape(content);
- tensorflow+ssd_mobilenet实现目标检测的训练
本文在Ubuntu下使用tensorflow的object detection API来训练自己的数据集.所用模型为ssd_mobilenet,也可以使用其他的模型.当然也可以在windows下训练, ...
- windows上下载redis扩展
关于windows电脑上下载redis扩展,网站一搜一大把,但是我相信有很多小伙伴还是不知道这个扩展到底怎么下载.好了,现在我就用通俗易懂的话来告诉大家怎么下载安装这个redis扩展. 1.首先我们先 ...
- [原创]基于Zynq Linux环境搭建(三)
此篇编译Kernel 解压: [#17#17:26:56 FPGADeveloper@ubuntu ~/Zybo_Demo]$tar zxvf *.tar.gz 进入到文件kernel文件夹中,cle ...
- Redis数据类型String
set和get Set带空格的字符串值,这时候就需要使用双引号了,否则会出错 getset getset设置某个key-value,然后把设置之前的值返回来 incr,incrby 和 decr,de ...
- xlrd模块;xlwt模块使用,smtp发送邮件
先安装 pip3 install xlwt pip3 install xlrd import xlwt, xlrd from xlrd.book import Book from xlrd.sheet ...
- 【Codeforces】【图论】【数量】【哈密顿路径】Fake bullions (CodeForces - 804F)
题意 有n个黑帮(gang),每个黑帮有siz[i]个人,黑帮与黑帮之间有有向边,并形成了一个竞赛完全图(即去除方向后正好为一个无向完全图).在很多年前,有一些人参与了一次大型抢劫,参与抢劫的人都获得 ...