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合并的结果存储至新疆(去除重复键);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值