redis03----集合 set 相关命令
- 集合 set 相关命令
- 集合的性质: 唯一性,无序性,确定性
- 注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
- 但,因为集合的无序性,无法通过下标或范围来访问部分元素.
- 因此想看元素,要么随机先一个,要么全选
- sadd key value1 value2 //增加的值不能够相同,内部的排序是随机的,
- 作用: 往集合key中增加元素
- srem key value1 value2
- 作用: 删除集合中集为 value1 value2的元素
- 返回值: 忽略不存在的元素后,真正删除掉的元素的个数
- spop key
- 作用: 返回并删除集合中key中1个随机元素
- 随机--体现了无序性
- srandmember key
- 作用: 返回集合key中,随机的1个元素.
- sismember key value
- 作用: 判断value是否在key集合中
- 是返回1,否返回0
- smembers key
- 作用: 返回集中中所有的元素
- scard key
- 作用: 返回集合中元素的个数
- smove source dest value
- 作用:把source中的value删除,并添加到dest集合中
- r1:0>smove set set1 value1
- "1"
- sinter key1 key2 key3
- 作用: 求出key1 key2 key3 三个集合中的交集,并返回
- redis 127.0.0.1:6379> sadd s1 0 2 4 6
- (integer) 4
- redis 127.0.0.1:6379> sadd s2 1 2 3 4
- (integer) 4
- redis 127.0.0.1:6379> sadd s3 4 8 9 12
- (integer) 4
- redis 127.0.0.1:6379> sinter s1 s2 s3
- 1) "4"
- redis 127.0.0.1:6379> sinter s3 s1 s2
- 1)"4"
- sinterstore dest key1 key2 key3
- 作用: 求出key1 key2 key3 三个集合中的交集,并赋给dest存储。
- suion key1 key2.. Keyn
- 作用: 求出key1 key2 keyn的并集,并返回
- sdiff key1 key2 key3
- 作用: 求出key1与key2 key3的差集
- 即key1-key2-key3
- order set 有序集合
- 集合是无序的。score1 是他排序的因子。
- zadd key score1 value1 score2 value2 ..
- 添加元素
- redis 127.0.0.1:6379> zadd stu 18 lily 19 hmm 20 lilei 21 lilei
- (integer) 3
- r1:0> zrange stu 0 -1
- 1) "lily"
- 2) "hmm"
- 3) "lilei"
- zrem key value1 value2 ..
- 作用: 删除集合中的元素
- zremrangebyscore key min max //根据分数删除
- 作用: 按照socre来删除元素,删除score在[min,max]之间的
- redis 127.0.0.1:6379> zremrangebyscore stu 4 10
- (integer) 2
- redis 127.0.0.1:6379> zrange stu 0 -1
- 1) "f"
- zremrangebyrank key start end //根据分数的排名删
- 作用: 按排名删除元素,删除名次在[start,end]之间的
- redis 127.0.0.1:6379> zremrangebyrank stu 0 1
- (integer) 2
- redis 127.0.0.1:6379> zrange stu 0 -1
- 1) "c"
- 2) "e"
- 3) "f"
- 4) "g"
- zrank key member
- 查询member的排名(升续 0名开始)
- zrevrank key memeber
- 查询 member的排名(降续 0名开始)
- ZRANGE key start stop [WITHSCORES]
- 把集合排序后,返回名次[start,stop]的元素
- 默认是升续排列
- Withscores 是把score也打印出来
- r1:0>ZRANGE stu 0 -1 WITHSCORES
- 1) "lilei"
- 2) "1"
- 3) "lily"
- 4) "14"
- 5) "hmm"
- 6) "16"
- 7) "lile"
- 8) "29"
- zrevrange key start stop
- 作用:把集合降序排列,取名字[start,stop]之间的元素
- zrangebyscore key min max [withscores] limit offset N
- 作用: 集合(升续)排序后,取score在[min,max]内的元素,
- 并跳过 offset个, 取出N个
- redis 127.0.0.1:6379> zadd stu 1 a 3 b 4 c 9 e 12 f 15 g
- (integer) 6
- redis 127.0.0.1:6379> zrangebyscore stu 3 12 limit 1 2 withscores
- 1) "c"
- 2) "4"
- 3) "e"
- 4) "9"
- zcard key
- 返回元素个数
- zcount key min max
- 返回[min,max] 区间内元素的数量
- zinterstore destination numkeys key1 [key2 ...]
- [WEIGHTS weight [weight ...]]
- [AGGREGATE SUM|MIN|MAX]
- 求key1,key2的交集,key1,key2的权重分别是 weight1,weight2
- 聚合方法用: sum |min|max
- 聚合的结果,保存在dest集合内
- 注意: weights ,aggregate如何理解?
- 答: 如果有交集, 交集元素又有socre,score怎么处理?
- Aggregate sum->score相加 , min 求最小score, max 最大score
- 另: 可以通过weigth设置不同key的权重, 交集时,socre * weights
- 详见下例
- redis 127.0.0.1:6379> zadd z1 2 a 3 b 4 c
- (integer) 3
- redis 127.0.0.1:6379> zadd z2 2.5 a 1 b 8 d
- (integer) 3
- redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2
- (integer) 2
- redis 127.0.0.1:6379> zrange tmp 0 -1
- 1) "b"
- 2) "a"
- redis 127.0.0.1:6379> zrange tmp 0 -1 withscores
- 1) "b"
- 2) "4"
- 3) "a"
- 4) "4.5"
- redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate sum
- (integer) 2
- redis 127.0.0.1:6379> zrange tmp 0 -1 withscores
- 1) "b"
- 2) "4"
- 3) "a"
- 4) "4.5"
- redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate min
- (integer) 2
- redis 127.0.0.1:6379> zrange tmp 0 -1 withscores
- 1) "b"
- 2) "1"
- 3) "a"
- 4) "2"
- redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 weights 1 2
- (integer) 2
- redis 127.0.0.1:6379> zrange tmp 0 -1 withscores
- 1) "b"
- 2) "5"
- 3) "a"
- 4) "7"
redis03----集合 set 相关命令的更多相关文章
- Shell编程基础教程5--文本过滤、正则表达式、相关命令
5.文本过滤.正则表达式.相关命令 5.1.正则表达式(什么是正则表达式?正则表达式怎么进行匹配?常用命令) 简介: 一种用来描述文本模式的特殊语法 ...
- redis的hash, list, set类型相关命令
hash相关命令: 1. hset HSET key field value 将哈希表key中的域field的值设为value.如果key不存在,一个新的哈希表被创建并进行hset操作.如果域fiel ...
- Redis学习笔记(二)-key相关命令【转载】
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...
- redis-key相关命令
本篇主要介绍和redis的key进行操作的相关命令. 命令 描述 复杂度 返回值 DEL key [key ...] 删除给定的一个或多个 key .不存在的 key 会被忽略.删除单个列表.集合.有 ...
- redis对set(无序集合)的相关操作
redis对set类型(无序集合)操作的相关命令以及如何在python使用这些命令 redis对set类型操作的命令: 命令 语法 概述 返回值 Redis Sadd 命令 sadd key memb ...
- Redis学习之二 数据类型和相关命令
原文:https://www.cnblogs.com/lonelyxmas/p/9073928.html 如果还不懂安装的,请看 Windows环境下安装Redis Redis一共支持五种数据类型 1 ...
- [Redis]Redis的五种数据类型与键值/服务器相关命令
-------------------------------------------------------------------------------------- String(字符串):最 ...
- Linux网络——配置防火墙的相关命令
Linux网络——配置防火墙的相关命令 摘要:本文主要学习了如何在Linux系统中配置防火墙. iptables命令 iptables准确来讲并不是防火墙,真正的防火墙是运行于系统内核中的netfil ...
- redis入门指南(二)—— 数据操作相关命令
写在前面 以下绝大部分内容取材于<redis入门指南>,部分结合个人知识,实践后得出. 只记录重要,明确,属于新知的相关内容,杜绝冗余和重复. 字符串 1.字符串类型是redis中最常见的 ...
随机推荐
- P1373 小a和uim之大逃离 (动态规划)
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- P3147 [USACO16OPEN]262144 (贪心)
题目描述 给定一个1*n的地图,在里面玩2048,每次可以合并相邻两个(数值范围1-262,144),问最大能合出多少.注意合并后的数值并非加倍而是+1,例如2与2合并后的数值为3. 这道题的思路: ...
- 2>&1使用
2>&1使用 一 相关知识 1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |).2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号 ...
- cf575A Fibonotci
Fibonotci sequence is an integer recursive sequence defined by the recurrence relation Fn = sn - 1·F ...
- Oracle Partition 分区详细总结
此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作 ...
- msp430项目编程51
msp430综合项目---扩展项目一51 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结
- 更改UISwitch大小
UISwitch大小总是改不了...找了一个简便方法. mySwitch = [[UISwitch alloc] initWithFrame: CGRectMake( width - 55, hei ...
- 《从零开始搭建游戏服务器》MySQL安装配置
一.下载资源: 到MySQL官网下载免安装版的mysql包,或者直接点击此链接下载:mysql-5.7.19-winx64.zip 二.解压配置: 将上面下载的安装包解压到一个本地目录下,在得到的my ...
- HDU - 5584 LCM Walk (数论 GCD)
A frog has just learned some number theory, and can't wait to show his ability to his girlfriend. No ...
- codevs——1507 酒厂选址
1507 酒厂选址 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description Abstinence(戒酒) ...