目录
一.慢查询
1.生命周期
2.配置使用
(1).slowlog-max-len
(2).slowlog-log-slower-than
(3).配置方法
1.默认值
config get slowlog-max-len = 128
config get slowlog-log-slower-than = 10000
2.修改配置文件重启
3.动态配置
config set slowlog-max-len 1000
config set slowlog-log-slower-than 1000
(4).慢查询命令
- slowlog get [n] : 获取慢查询队列
- slowlog len :获取慢查询队列长度
- slowlog reset :清空慢查询队列
(5).运维经验
- slowlog-max-len 不要设置过小 ,通常设置1000左右。
- slowlog-log-slower-than 不要设置过大 ,默认10ms ,通常设置1ms
- 理解命令生命周期。
- 定期持久化慢查询。
二.pipeline 流水线
1.介绍
2.对比使用与未使用的差距
3.操作建议
- 注意每次pipeline携带数据量 (不宜过多)
- pipeline每次只能作用在一个Redis节点 上
- M操作与pipeline区别 (原子与非原子)
三.发布订阅
- 发布者不是计划发送消息给特定的接收者(订阅者),而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅
- 订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的
- 发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
- 客户端发到频道的消息,将会被推送到所有订阅此频道的客户端
- 客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来
消息的格式
- 推送消息的格式包含三部分
- part1:消息类型,包含三种类型
- subscribe,表示订阅成功
- unsubscribe,表示取消订阅成功
- message,表示其它终端发布消息
- 如果第一部分的值为subscribe,则第二部分是频道,第三部分是现在订阅的频道的数量
- 如果第一部分的值为unsubscribe,则第二部分是频道,第三部分是现在订阅的频道的数量,如果为0则表示当前没有订阅任何频道,当在Pub/Sub以外状态,客户端可以发出任何redis命令
- 如果第一部分的值为message,则第二部分是来源频道的名称,第三部分是消息的内容
1.角色
- 发布者(publisher)
- 订阅者(subscriber)
- 频道(channel)
2.模型
3.API
publish 发布
unsubscriber 取消订阅
subscribe 订阅
4.消息队列
消息队列是发布一个信息,只有一个能接收到
四.bitmap位图
1.简介
位图并不是一种数据结构,其实就是一种普通的字符串,也可以说是byte数组。基本语法是setbit/getbit;
2.使用
返回的0是设置之前的偏移量,没有也是0
bitpos获取字节所在的位置
setbit m 3 1
bitpos m 0 返回0
bitpos m 1 返回3
3. 实战
五.HyperLogLog
1.简介
2.API
不能获取单条数据