Redis其他功能
2020-08-21 本文已影响0人
第二套广播体操
慢查询
redis生命周期如下图 因为Redis是单线程的,相关命令发送请求以后需要排队
![](https://img.haomeiwen.com/i14328939/33c5415cc3d3eec4.png)
慢查询发生在第三阶段,执行命令阶段
慢查询只是导致客户端超时的一种可能因素
配置
慢查询是一个先进先出的队列。保存在内存中。会随着重启而消失
如果被列为慢查询他会进入(记录)一个先进先出的队列。且队列具有固定长度。
默认值:
config get slowlog-max-len = 128 默认慢队列长度
config get slowlog-log-slower-than = 10000 10ms
命令:
slowlog get [n] :获取慢查询队列
slowlog len :获取慢查询队列长度
slowlog reset:清空慢查询队列
运维经验
因为redis是qps万级别的,所以处理速度是微秒级,我们将1ms算为慢查询范围。
长度设置为1000防止丢失慢查询数据 128太小了
定期持久化慢查询
Pipeline 流水线
流水线就是将多个命令通过一次网络请求(占用一次网络时间)发送给服务端处理,然后批量返回的操作。
![](https://img.haomeiwen.com/i14328939/ecc179f1ceefc9de.png)
redis的命令时间是微秒级别,执行速度远快于一次网络请求
![](https://img.haomeiwen.com/i14328939/3b65d38a34cf15cf.png)
![](https://img.haomeiwen.com/i14328939/9c8407d5d31046b2.png)
与M操作的区别(批量)
M操作是原子性的,是一条命令
流水线是非原子性的,可以切割成多条,如上图为100条流水线,中间可以穿插其他命令。
发布订阅
各种MQ 不香吗!
bitmap 位图
通俗:设置数据上某位bit上面修改1和0数据
![](https://img.haomeiwen.com/i14328939/d282e1a8d9d915b0.png)
![](https://img.haomeiwen.com/i14328939/fee503b10bc4c0a5.png)
是否节省空间需要通过结算得出。
GEO
地理位置计算