ZADD 创建有序集合并添加值
ZRANGE 根据下标查询有序集合,score值正序排
ZREVRANGE 根据下标查询有序集合,score值倒序排
作业
- 创建有序集合z1,添加值 1 a,2 b, 3 c
ZADD z1 1 a 2 b 3 c - 查询 z1 的所有值,不带 score值
ZRANGE z1 0 -1 - 查询 z1 的所有值,带 score值,并且从小到大排
ZRANGE z1 0 -1 - 查询 z1 的所有值,带 score值,并且从大到小排
ZREVRANGE z1 0 -1
ZSCORE 返回有序集合中指定元素的score值
ZINCRBY 增量调整有序集合中元素的score值
ZCARD 返回有序集合中的元素个数
作业
- 查看 z1中 a 的score值
ZSCORE z1 a - 查看 z1中 c 的score值
ZSCORE z1 c - 给 z1 中的 a 的score值 增量调整 10
ZINCRBY z1 10 a - 给 z1 中的 a 的score值 增量调整 -1
ZINCRBY z1 -1 a - 查看 z1中 a 的score值
ZSCORE z1 a - 查看 z1中 c 的score值
ZSCORE z1 c - 查看 z1 中有多少个元素
ZCARD z1
ZCOUNT 返回score值 之间的成员数量
ZRANGEBYSCORE 返回score值区间范围的成员,并按score值递增排列
ZREVRANGEBYSCORE 返回score值区间范围的成员,并按score值递减排列
作业
- 新建 z2 有序集合 并添加成员: 1 a,2 b,3 c,4 d,5 e,6 f, 7 g
ZADD z2 1 a 2 b 3 c 4 d 5 e 6 f 7 g - 统计 z2 有多少成员数量
ZCOUNT z2 1 7 - 查询 z2 的 score值 2 到6 的成员,并按score值递增排列
ZRANGEBYSCORE z2 2 6 - 查询 z2 的 score值 2 到6 的成员,并按score值递减排列
ZREVRANGEBYSCORE z2 6 2 - 查询 z2 的所有成员,按score值递减排列
ZREVRANGEBYSCORE z2 +inf -inf
ZRANK 返回有序集合按score值递增排列的 排名
ZREVRANK 返回有序集合按score值递减排列的 排名
作业
- 查看z2 中c的排名,按score递增排名
ZRANK z2 c - 查看z2 中c的排名,按score递减排名
ZREVRANK z2 c - 查看z2 中g的排名,按score递增排名
ZRANK z2 g - 查看z2 中g的排名,按score递增排名
ZREVRANK z2 g
重点
ZREM 移除有序集合中的一个或多个成员
ZREMRANGEBYRANK 按照下标移除 有序集合中的成员
ZREMRANGEBYSCORE 按照score区间移除有序集合中的成员
作业
- 删除 z2 中的 a , c 两个成员
ZREM z2 a c - 删除z2 中的 前两个成员
ZREMRANGEBYRANK z2 0 1 - 删除z2 中的 最后一个成员
ZREMRANGEBYRANK z2 -1 -1 - 删除z2 中 score值 1到5的成员
ZREMRANGEBYSCORE z2 1 5
重点
ZRANGEBYLEX 按照有序集合中的 key 的区间来查询,如果score值相同则按照字典序排列
ZLEXCOUNT 统计有序集合中key的区间元素数量
ZREMRANGEBYLEX 按照有序集合中的 key 的区间 来删除元素
区间规范:
- 代表正无限, - 代表负无限
( 表示开区间(指定的值不会被包含在范围之内), 而 [ 则表示闭区间(指定的值会被包含在范围之内)
以上三个命令最好在 有序集合的 所有元素分值相同的情况下使用
作业
添加有序集合 :
ZADD zseta 0 a 0 b 0 c 0 d 0 e 0 f 0 g 1 x 2 y 3 z 4 n 5 m
- 查询 zseta 中 a 到 e 之间的元素,不包含 a 和 e 本身
ZRANGEBYLEX zseta (a (e - 查询 zseta 中 f 到 z 之间的元素,包含 f 和 z 本身
ZRANGEBYLEX zseta [f [z - 统计 zseta 中 b 之后一共有多少元素,不包含b本身
ZLEXCOUNT zseta (b + - 统计 zseta 中 z 之前 一共有多少元素 包含 z 本身
ZLEXCOUNT zseta - [z - 删除 z 之后的所有元素,不包含 z 本身
ZREMRANGEBYLEX zseta - (z - 删除 b 到 g 之间的元素,不包含 b 和 g 本身
ZREMRANGEBYLEX zseta (b (g
ZUNIONSTORE 查询多个集合的并集,并存储到一个新的集合中.
-
WEIGHTS子句:给每个集合的分值指定一个乘法因子
-
AGGREGATE子句:如果并集中存在相同的key,分值可以选择 相加,取最大,取最小三种情况
ZINTERSTORE 查询多个集合的交集,并存储到一个新的集合中.同样可以使用WEIGHTS和AGGREGATE子句.
作业
准备数据:
DEL z1 z2
ZADD z1 2 a 3 b 4 c
ZADD z2 5 a 6 d 7 e
查询 z1 和 z2 的并集,并存储到 zx1 中
zunionstore zx1 3 z1 z2
查询 z1 和 z2 的并集,并将 z1的分值乘3, z2的分值乘 4.存储到 zx2 中
zunionstore zx2 3 z1 z2 weights 3 4
查询 z1 和 z2 的交集,分值选择最小的,存储到zx3中
zunionstore zx3 3 z1 z2 ahhregate min
查询 z1 和 z2 的交集,分值选择最大的,存储到zx3中
zunionstore zx3 3 z1 z2 ahhregate max
掌握scan命令,了解 count和 match子句的含义
作业
- 使用SCAN 命令 读取s开头的key,每次读取20个元素
SCAN 0 MATCH s* COUNT 20 - 使用SCAN 命令 遍历所有的key,每次读取6个
SCAN 0 MATCH COUNT 6
遍历set1中所有的key,每次读取5个元素
SSCAN set1 0 count 5
遍历set1中以 a 开头的key,每次读取 7个元素
SSCAN set1 0 match a* count 7
遍历set1中以 1 结尾的key,每次读取 20个元素
SSCAN set1 0 match *1 count 20
遍历hash1 中以3 结尾的元素
遍历hash1 中以c开头的元素,每次读取 6 个元素
遍历hash1 中以b开头的元素,每次读取 3 个元素
遍历hash1 中以3 结尾的元素 ----HSCAN hash1 0 match 3
遍历hash1 中以c开头的元素,每次读取 6 个元素----HSCAN hash1 0 match c count 6
遍历hash1 中以b开头的元素,每次读取 3 个元素----HSCAN hash1 0 match b* count 3
127.0.0.1:6379[11]› HSCAN hash1 0 match *3
- "0"
- (empty list or set)
127.0.0.1:6379[11]› HSCAN hash1 0 match c* count 6 - "0"
- "c"
- "C"
- "c1"
- "C1"
- "c2"
- "C2"
127.0.0.1:6379[11]› HSCAN hash1 0 match b* count 3
- "0"
- "b"
- "B"
- "b1"
- "B1"
- "b2"
- "B2"
127.0.0.1:6379[11]›
DBSIZE : 返回当前库位key的数量
FLUSHDB : 清空 当前库位所有key的数量
FLUSHALL:清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。
作业
- 查看当前库位 有多少key
dbsize - 切换到10库位,清空当前库位的key
SELECT 10
FLUSHDB
例子
redis> DBSIZE # 0 号数据库的 key 数量
(integer) 9
redis> # 切换到 1 号数据库
OK
redis[1]> DBSIZE # 1 号数据库的 key 数量
(integer) 6
redis[1]> flushall
网友评论