Redis关于Set及Zset集合命令的学习
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
sadd set value..:向set集合中添加一个或者多个元素
127.0.0.1:6379> sadd myset zhangsan
(integer) 1
127.0.0.1:6379> sadd myset lisi wangwu
(integer) 2
************************************************************************
scard set:获取set集合中元素的个数
127.0.0.1:6379> scard myset
(integer) 3
************************************************************************
sdiff set1 set2:返回第一个集合中和第二个集合不同的元素
127.0.0.1:6379> sadd myset1 zhangsan
(integer) 1
127.0.0.1:6379> sadd myset1 zhangliu
(integer) 1
127.0.0.1:6379> sadd myset1 lijiu
(integer) 1
127.0.0.1:6379> sdiff myset myset1
1) "wangwu"
2) "lisi"
127.0.0.1:6379> sdiff myset1 myset
1) "zhangliu"
2) "lijiu"
************************************************************************
sdiffstore destinate set1 set2:返回第一个和第二个集合的差集保存在destinate中。
127.0.0.1:6379> sdiffstore myset2 myset1 myset
(integer) 2
127.0.0.1:6379> smembers myset
1) "wangwu"
2) "lisi"
3) "zhangsan"
127.0.0.1:6379> smembers myset1
1) "lijiu"
2) "zhangliu"
3) "zhangsan"
127.0.0.1:6379> smembers myset2
1) "zhangliu"
2) "lijiu"
127.0.0.1:6379> sdiffstore myset2 myset1
(integer) 3
127.0.0.1:6379> smembers myset2
1) "zhangliu"
2) "lijiu"
3) "zhangsan"
************************************************************************
可以指定与多个集合的差集
127.0.0.1:6379> sadd set1 1 2 3 4
(integer) 4
127.0.0.1:6379> sadd set2 4 5 6 7
(integer) 4
127.0.0.1:6379> sadd set3 7 8 9 10
(integer) 4
127.0.0.1:6379> sdiffstore set4 set1 set2 set3
(integer) 3
127.0.0.1:6379> smembers set4
1) "1"
2) "2"
3) "3"
************************************************************************
sinter set1 set2 set3 :返回所有集合的交集
127.0.0.1:6379> sinter set1 set2
1) "4"
************************************************************************
sinterstore des set..:把set的交集放在des中
127.0.0.1:6379> sinterstore set5 set1 set2
(integer) 1
127.0.0.1:6379> smembers set5
1) "4"
************************************************************************
sismember set value:查看value是不是set中的元素
127.0.0.1:6379> sismember set1 4
(integer) 1
127.0.0.1:6379> sismember set1 5
(integer) 0
127.0.0.1:6379> sismember set1 2
(integer) 1
************************************************************************
smove source dest member:把集合中的元素移动到另一个集合中
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> smembers set2
1) "4"
2) "6"
3) "7"
127.0.0.1:6379> smove set1 set2 2
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> SMEMBERS set2
1) "2"
2) "4"
3) "6"
4) "7"
************************************************************************
spop set num:弹出set集合中指定数量的元素
127.0.0.1:6379> spop set1 5
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> smembers set1
(empty array)
127.0.0.1:6379> sadd set1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> spop set1 1
1) "4"
127.0.0.1:6379> spop set1 1
1) "2"
************************************************************************
srandmember set num:从set中随机返回num个元素
127.0.0.1:6379> srandmember set1
"3"
127.0.0.1:6379> srandmember set1 2
1) "3"
2) "1"
127.0.0.1:6379> srandmember set1 2
1) "3"
2) "5"
************************************************************************
srem set value..:删除集合中指定的元素(一个或多个)
127.0.0.1:6379> srem set1 1
(integer) 1
127.0.0.1:6379> smembers set1
1) "3"
2) "5"
127.0.0.1:6379> srem set1 3
(integer) 1
127.0.0.1:6379> smembers set1
1) "5"
************************************************************************
flushdb:删除这个表中的所有数据
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
************************************************************************
sunion set1 set2:返回所有给定集合的并集
127.0.0.1:6379> sadd set1 1 2 3
(integer) 3
127.0.0.1:6379> sadd set2 4 5 6
(integer) 3
127.0.0.1:6379> sunion set1 set2
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
************************************************************************
sunionstore dest set1 set2 ..:将后面集合的并集放入dest中
127.0.0.1:6379> sunionstore set3 set1 set2
(integer) 6
127.0.0.1:6379> smembers set3
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
************************************************************************
sscan set cursor:迭代集合中的元素
127.0.0.1:6379> sscan set1 0
1) "0"
2) 1) "1"2) "2"3) "3"
127.0.0.1:6379> sscan set3 0
1) "0"
2) 1) "1"2) "2"3) "3"4) "4"5) "5"6) "6"
127.0.0.1:6379> sscan set3 0
1) "0"
Redis 有序集合(sorted set)(zset)
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
************************************************************************
zadd zset1 score1 value1 score2 value2..:向zset中添加元素
127.0.0.1:6379> zadd key1 2 zhangsan 1 lisi
(integer) 2
127.0.0.1:6379> zadd key1 2 wangwu
(integer) 1
************************************************************************
zcard zset:获取集合中的元素个数
127.0.0.1:6379> zcard key1
(integer) 3
************************************************************************
zcount zset min max:获取分数在指定区间的元素个数
127.0.0.1:6379> zcount key1 1 2
(integer) 3
127.0.0.1:6379> zcount key1 1 1
(integer) 1
************************************************************************
zincrby zset increment member:向zset集合中增加指定元素的分数
127.0.0.1:6379> zincrby key1 2 lisi
"3"
************************************************************************
zinterstore dest num zset1 zset2 :将num个zset中的对应相同的key的score相加存在dest中。
127.0.0.1:6379> zadd set1 23 lisi 25 mike
(integer) 2
127.0.0.1:6379> zadd set2 45 lisi 55 mike
(integer) 2
127.0.0.1:6379> zinterstore set3 2 set1 set2
(integer) 2
127.0.0.1:6379> zrange set3 0 -1 withscores
1) "lisi"
2) "68"
3) "mike"
4) "80"
************************************************************************
zrange zset min max withscores:返回zset中的元素
127.0.0.1:6379> zrange set3 0 -1
1) "lisi"
2) "mike"
127.0.0.1:6379> zrange set3 0 -1 withscores
1) "lisi"
2) "68"
3) "mike"
4) "80"
************************************************************************
zrange zset min max withscores:查看指定区间内zet集合中的元素,包括scores
127.0.0.1:6379> zrange set3 0 -1 withscores
1) "lisi"
2) "68"
3) "mike"
4) "80
************************************************************************
zrangebuscore zset min max withscores:返回指定分数区间内的元素
127.0.0.1:6379> zrangebyscore set3 68 80 withscores
1) "lisi"
2) "68"
3) "mike"
4) "80"
127.0.0.1:6379> zrangebyscore set3 68 70 withscores
1) "lisi"
2) "68"
************************************************************************
zrak zset member:返回指定成员的索引
127.0.0.1:6379> zrank set3 mike
(integer) 1
127.0.0.1:6379> zrank set3 lisi
(integer) 0
************************************************************************
zrem zset member:删除zset中指定的成员
127.0.0.1:6379> zrem set3 lisi
(integer) 1
127.0.0.1:6379> zrange set3 0 -1 withscores
1) "mike"
2) "80"
************************************************************************
zremrangebyrank zset minscore maxascore:删除指定排名区间的元素
127.0.0.1:6379> zrange set3 0 -1 withscores
1) "mike"
2) "80"
127.0.0.1:6379> zremrangebyrank set3 0 100
(integer) 1
127.0.0.1:6379> zrange set3 0 -1 withscores
(empty array)
************************************************************************
zrangebyscore zset min max:删除指定分数区间的元素
127.0.0.1:6379> zrevrange set3 0 -1 withscores
1) "lisi1"
2) "66"
3) "lisi"
4) "55"
5) "lisi2"
6) "53"
127.0.0.1:6379> zremrangebyscore set3 52 54
(integer) 1
127.0.0.1:6379> zrevrange set3 0 -1 withscores
1) "lisi1"
2) "66"
3) "lisi"
4) "55
************************************************************************
zrevrangebyscore zset max min withscores:倒序返回指定分数区间的元素
127.0.0.1:6379> zrevrangebyscore set3 1000 9 withscores
1) "lisi1"
2) "66"
3) "lisi"
4) "55"
************************************************************************
zrank zset member:返回指定成员在zset中的正序的索引
zrevrank zset member:返回指定成员在zset中的正序的索引
127.0.0.1:6379> zrank set3 lisi
(integer) 0
127.0.0.1:6379> zrank set3 lisi1
(integer) 1
127.0.0.1:6379> zrevrank set3 lisi1
(integer) 0
127.0.0.1:6379> zrevrank set3 lisi
(integer) 1
************************************************************************
zscore zset member:返回集合中指定成员的分数
127.0.0.1:6379> zscore set3 lisi
"55"
127.0.0.1:6379> zscore set3 lisi1
"66"
************************************************************************
迭代有序集合中的元素
127.0.0.1:6379> zscan set3 0
1) "0"
2) 1) "lisi"2) "55"3) "lisi1"4) "66"
************************************************************************
Redis关于Set及Zset集合命令的学习相关推荐
- Redis 常用数据类型之 zset(有序集合)
Redis 常用数据类型之 zset(有序集合) 有序集合 zset(sorted-set)相关特性 redis 有序集合 zset 与 无序 set 类型的一样,都是 string 类型的集合元素, ...
- Redis有序集合命令ZREMRANGEBYLEX详解与应用
Redis有序集合命令ZREMRANGEBYLEX详解与应用 本文是我在Redis中文网翻译团队翻译redis命令的相关内容,也是取得翻译团队同意后在CSDN同步发表 redis.cn翻译团队 也欢迎 ...
- Redis有序集合命令ZRANGEBYLEX详解与应用
Redis有序集合命令ZRANGEBYLEX详解与应用 1 简介 ZRANGEBYLEX 返回指定成员区间内的成员 此指令适用于分数相同的有序集合中 LEX结尾的指令是要求分数必须相同 2 语法 2. ...
- Redis中的数据结构与常用命令
开发系统:Ubuntu 17.04 Redis驱动:StackExchange.Redis 1.2.3 Redis版本:3.2.1 开发平台:.NET Core 对于Redis的介绍这里只写一句:Re ...
- Redis数据库的部署及常用命令
Redis数据库的部署及常用命令 一.关系数据库和非关系数据库 1.1 关系型数据库 1.2 非关系型数据库 1.2.1 非关系型数据库的产生背景 1.2.2 关系型数据库和非关系型数据库区别 1)数 ...
- Java中使用redis的完整实例及常用命令
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位w ...
- Redis的list,set,zset类型应用及排行榜的实现
Redis数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等 List类型 简介 Lis ...
- Redis 常用命令的学习
Redis 常用命令的学习 文章目录 Redis 常用命令的学习 1. 介绍 2. Redis 的五种数据类型以及操作命令 1. 连接 2. Redis的key的操作命令 3.字符串类型:string ...
- java获取zset_Redis Set和ZSet常用命令
Redis Set和ZSet常用命令 Set 1. SADD :添加多个元素到集合中 127.0.0.1:6379> sadd goodfood "potato" " ...
最新文章
- 2020中国Ray技术峰会丨取代Spark,Michael Jordan和Ion Stoica提出下一代分布式实时机器学习框架...
- SAP系统未清账和已清账的区分
- springboot学习笔记(五)
- asp.net 跨页面传值(一)
- mysql日期格式转换
- 浮点数比较大小的时候不能直接用等号
- SQL中 NVL()函数的使用
- Pandownload作者被抓后,我决定用docker搭建一款私有网盘
- 阿里云在安全方面有哪些防护措施
- echarts 文本标签配置、label文字样式
- 【渝粤题库】陕西师范大学202141规制经济学 作业(高起专)
- 从苹果封杀Epic与特斯拉硬刚拼多多看新时代的渠道产品战
- zookeeper报错Have smaller server identifier, so dropping the connection
- 拉普拉斯金字塔图像融合原理
- 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
- 编程中的匈牙利命名法
- ZUCC_计算机系统原理实验_实验五 位运算
- 每周全球科技十大新闻(2021.1.18-1.24)
- 服务器esxi虚拟机升级,ESXi 服务器安装升级补丁
- 电磁兼容入门篇之基础知识
热门文章
- [FineReport]重复与冻结设置
- Excel筛选后数据如何汇总计算?
- 案例 | 即刻智能助力合肥燃气集团迈入“燃气大数据时代”
- 台式计算机cpu是什么,台式电脑CPU怎么看好坏?台式电脑处理器好坏从这几个方面判断...
- 惠普暗影精灵 8 台式机 评测
- 最全的豆丁网使用常见问题帮助手册
- java-net-php-python-jsp卫浴网站管理系统演示录像2019计算机毕业设计程序
- 怎么压缩pdf文件?选对方法其实很简单!
- 国赛论文解读(二)-国赛选手是如何读论文的?
- git 为单个项目设置用户名与邮箱