Redis其他功能

慢查询

redis生命周期如下图 因为Redis是单线程的,相关命令发送请求以后需要排队

生命周期.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 流水线

流水线就是将多个命令通过一次网络请求(占用一次网络时间)发送给服务端处理,然后批量返回的操作。

效果对比.png

redis的命令时间是微秒级别,执行速度远快于一次网络请求

无流水线操作.png
使用流水线操作

与M操作的区别(批量)

M操作是原子性的,是一条命令

流水线是非原子性的,可以切割成多条,如上图为100条流水线,中间可以穿插其他命令。

发布订阅

各种MQ 不香吗!

bitmap 位图

通俗:设置数据上某位bit上面修改1和0数据

用途.png
10万用户统计.png

是否节省空间需要通过结算得出。

GEO

地理位置计算

你可能感兴趣的:(Redis其他功能)