89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令

本次讲解要点:
** Set相关命令:是指value中的数据类型**

启动redis服务器:
打开小黑窗:
C:\Users\JH>e:
E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin
E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redis.windows.conf

启动redis客户端:
小黑窗:redis-cli

★ Redis的数据类型(都是针对Redis的value而言)

redis和map差不多。
Map 只能保存在内存中,
redis可以保存在磁盘。

Redis的key都是String

▲ value支持如下5种数据类型:

String: 最基本的数据类型,可保存任何的数据。
List: 元素是String的有序集合,集合内的元素可以重复。
Set: 元素是String的无序集合,集合内的数据不能重复。
Zset: 元素是String的有序集合,集合内的数据不能重复。
Hash: 也是key-value集合(类似Java的Map),key和value都是String类型的数据。这种类型主要用于保存对象。

Redis为不同数据类型提供了不同的操作命令,因此特定类型的数据需要使用对应类型的命令来执行操作。

★ ZSet相关的命令

zset 和 set 的区别:
ZSet相当于Set的增强版,它会每个元素都分配一个double类型的score(分数),并按该score对集合中元素排序。有点类似于TreeSet。
ZSet集合内元素不允许重复,但元素的score是可以重复的。
分数大的排前面

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。

ZCARD key: 返回key对应的ZSet中元素的个数

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。

ZDIFF numkeys key [key …] [WITHSCORES]: 计算给定ZSet之间的差值。该命令要Redis 6.2+才可用。

ZDIFFSTORE destination numkeys key [key …]: ZDIFF的存储版本,
将给定ZSet的差值保存到destination中。该命令要Redis 6.2+才可用。

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。

ZINTER numkeys key [key …]: 计算给定ZSet的交集。该命令要Redis 6.2+才可用。

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
一般用于对ZSet中所有元素的score都相等时进行处理。
min:可支持的写法: - 代表最小值。[字符串, 代表包含边界。(字符串,代表不包含边界。

  max:可支持写法:+代表最大值,[字符串, 代表包含边界。(字符串,代表不包含边界。

提示:当向ZSet添加多个score相等的元素时,ZSet就会使用字典顺序(英文字典中字母的排序方式)对这些元素排序,
      此时就可按字典顺序来获取指定范围内元素的个数。

ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。

BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。

BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。

ZREM key member [member …]: 删除ZSet内一个或多个元素。

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。

ZREVRANGE key start stop [WITHSCORES]: ZRANGE的反向版本。

ZREVRANGEBYLEX key max min [LIMIT offset count]: ZRANGEBYLEX的反向版本。

ZREVRANGEBYSCORE key max min [WITHSCORES]: ZRANGEBYSCORE的反向版本。

ZREVRANK key member: ZRANK的反向版本。score最大的反向索引反而是0。

ZSCORE key member: 获取指定元素的score。

ZUNION numkeys key [key …]: 计算给定ZSet的并集。该命令要Redis 6.2+才可用。

ZUNIONSTORE destination numkeys key [key …]: ZUNION的存储版本,将给定ZSet的并集保存到destination中。

ZMSCORE key member [member …]: 获取多个元素的score,该命令要Redis 6.2+才可用。

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

  注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。

【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。

演示:

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第1张图片

ZCARD key: 返回key对应的ZSet中元素的个数
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第2张图片

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第3张图片

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。
就是给某个元素增加分数89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第4张图片

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

这里的 numkeys 就是如果是两个集合要进行查询交集的部分,那么这个 numkeys 就要写为 2,
3个zset集合要查交集,那么numkeys就是3

89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第5张图片

89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第6张图片

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
注意点:一般用于对ZSet中 所有元素的score都相等 时进行处理

min:可支持的写法: - 代表最小值。[ 字符串, 代表包含边界。(字符串,代表不包含边界。
max:可支持写法:+代表最大值,[ 字符串, 代表包含边界。(字符串,代表不包含边界。

提示:
当向ZSet添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。

89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第7张图片
ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。并回显

89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第8张图片
BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
在这里插入图片描述

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。
BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第9张图片

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第10张图片

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。
提示:
当向ZSet 添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第11张图片

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第12张图片

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第13张图片

ZREM key member [member …]: 删除ZSet内一个或多个元素。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第14张图片

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第15张图片

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第16张图片

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第17张图片

ZSCORE key member: 获取指定元素的score。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第18张图片

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。

【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。
89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令_第19张图片

你可能感兴趣的:(springboot,redis,哈希算法,数据库)