Redis_03_键扩展功能

@

键扩展

慢查询

慢查询:记录执行时间超过指定的时间命令信息

1)Redis中的执行时间代表:命令在单线程中运行时间(排队和发送时间除外)

2)可定期执行SLOW GET命令将慢查询日志持久化存储至硬盘中;


慢查询由以下2个参数配置:

参数 含义
slowlog-log-slower-than N 指定超过N毫秒的命名均为慢查询 (默认值10000)
slow-man-len M 最多记录M条慢查询 (默认值128)

1)N = 0 代表记录所有命令,N < 0 代表不记录任何命令

2)M存储于内存的队列中(超出长度再记录时,将弹出最先记录的命令);

//建议值:N = 1000 M > 1000


常用命令

(1)获取慢查询日志队列中的命令信息

SLOWLOG GET N

1)N指定获取前N条命令(若省略,则返回全部命令信息);

2)命令信息的构成格式:

(integer) 命令在队列中ID
(integer) 执行命令的时间戳
(integer) 命令耗时
执行的命令和参数
Redis的IP和端口
“”

如:获取当前Redis中慢查询日志队列
在这里插入图片描述


(2)查询慢查询日志的当前长度(已记录命令条数)

SLOWLOG LEN


(3)清空慢查询日志队列

SLOWLOG RESET


订阅频道

订阅:Redis客户端与服务端Redis的特定频道绑定以获取数据

1)Redis客户端可订阅多个频道,频道也可被多个Redis客户端订阅

2)频道(Channel):存储有限数据可供不同Redis客户端获取

3)后续订阅的Redis客户端无法获取频道中先前的数据


如:Redis客户端订阅服务端Redis的频道
在这里插入图片描述


(1)创建频道(添加数据):PUBLISH 频道名 数据

1)返回成功获取该数据的Redis客户端数;


(2)订阅频道:SUBSCRIBE 频道1 频道N

1)订阅成功后会占用当前终端以显示从频道中获取数据的信息;

2)正则表达式订阅:PSUBSCRIBE 表达式1 表达式N


数据格式如下:

"message"
"频道名"
"数据信息"

(3)取消订阅:UNSUBSCRIBE 频道1 频道N

1)取消订阅指定频道后,无法获取该频道的任何数据信息;

2)正则表达式取消:PUNSUBSCRIBE 表达式1 表达式N


(4)活跃频道:PUBSUB CHANNELS 正则表达式

1)返回当前活跃的频道(该频道至少被一个Redis客户端订阅);

2)若不指定正则表达式,则默认返回所有活跃的频道;


(5)订阅数:PUBSUB NUMSUB 频道

1)返回指定频道被Redis客户端的订阅数;


功能键类型

GEO

GEO:通过经纬度存储地理位置信息数据

1)底层实现为有序集合(可通过有序集合操作该类型键)

//GEO中无删除成员命令,可通过ZREM命令删除指定成员


(1)创建/添加键:GEOADD 键名 经度 纬度 成员

1)成员代表地理位置,且可存储多个(格式必须为:经度 纬度 字符串);

2)返回成功添加地理位置的个数(修改成员,则返回0);


(2)获取经纬度:GEOPOS 键 成员1 成员N

1)返回指定成员的经纬度;


(3)获取距离:GEODIST 键 成员1 成员2 单位

1)返回成员1和成员2的地理距离;

单位 含义
m
km 公里
mi 英里
ft 表尺

(4)范围获取:GEORADIUS 键 经度 纬度 半径 选项

1)以指定经纬度作为中心,返回在指定半径内成员的经纬度;

2)GEORADIUSBYMEMBER名利同理,但返回的是成员;

3)常用选项如下:

选项 含义
WITHCOORD 返回结果包含经纬度
WITHDIST 返回结果包含距中心位置的距离
WITHHASH 返回结果中包含GEOHASH
ASC 以中心距离升序返回结果
DESC 以中心距离降序返回结果
STORE 新键 将结果存储至新键
STOREDIST 新键 将结果距中心的距离存储至新键

(5)转换:GEOHASH 键 成员1 成员N

1)将指定成员的经纬度以一维字符串返回(长度越长,精度越高);


Bitmaps

Bitmaps:以二进制格式存储数据,可修改每个位的值

1)底层实现为字符串(但可对字符串进行位操作);


(1)创建/修改键:SETBIT 键名 偏移量 值

1)偏移量(下标):指定创建/修改该键的特定位的值(只可为0或1);

2)偏移量的单位为位(1个字节为8位);


(2)获取值:GETBIT 键 偏移量

1)若指定偏移量位的值不存在,则也返回0(也可能值为0);


(3)计算值为1的个数:BITCOUNT 键 M N

1)返回M字节到N字节之间所含有1的个数(若省略,返沪所有1的个数);


(4)多键之间运算:BITOP 运算符 新键名 键1 键N

1)将多个键的“1”按照运算符进行运算,并将结果存储至新键;

2)运算符有以下4种:

运算符 含义
and 交运算
or 并运算
not 非运算
xor 异或运算

(5)指定值的偏移量:BITPOS 键 值 偏移量1 偏移量2

1)返回指定值在偏移量1到偏移量2之间第一次出现的偏移量位;

2)若省略偏移量1和偏移量2,则范围为该键的所有位;


HyperLogLog

HyperLogLog:占用极小内存空间存储数据,但存在误差率(0.81%);

1)底层实现为字符串,且所含值不重复;


(1)创建/添加键:PFADD 键名 “值1” “值N”

1)成功添加则返回1(无论添加多少个值,添加成功即可);

2)若添加值已存在,则不再进行添加;


(2)值数量:PFCOUNT 键1 键N

1)返回指定键所含值的个数;


(3)合并:PFMERGE 新建名 键1 键N

1)将键1和键N合并的结果存储至新疆(去除重复键);

posted @ 2022-04-10 14:38  爱和可乐的w  阅读(51)  评论(0)    收藏  举报