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" " ...
最新文章
- rsync配置与应用(转)
- Windows 系统下Git安装图解
- python 自动输入_Python自动输入【新手必学】
- 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...
- 用得最多的冒泡排序是不是少了个关键点?
- 4.kibana部署
- springmvc+druid+dataSource配置的两种方式
- css实现背景全透明样式
- toString方法和valueOf方法以及Symbol.toPrimitive方法的学习
- 计算机二进制技巧,计算机中十进制转二进制的相关技巧
- 计算机ram和rom的工作原理,RAM和ROM的作用与区别详细说明
- python hist函数_Python Pandas.DataFrame.hist()用法及代码示例
- Linux 上配置 SQL Server Always On Availability Group
- eclipse安装说明
- 推荐系统深度学习实战之Wide_Deep
- TiDB数据库要点及练习
- 学会如何管理和保护布线系统
- NSGA2 Matlab toolbox
- 2021年英文SEO外部链接该如何搭建?
- 跨链技术的分析和思考