redis-other

本文深入解析Redis慢查询机制,包括配置参数调整、慢查询队列管理及常见运维经验分享。同时,涵盖pipeline、发布订阅、Bitmap、HyperLogLog、GEO等高级功能的应用场景与API介绍。
摘要由CSDN通过智能技术生成

慢查询

生命周期

  1. 发送命令
  2. 排队(单线程特性)
  3. 执行命令(慢查询发生的阶段, 客户端超时不一定是慢查询导致的.慢查询只是一个因素)
  4. 返回执行结果

两个配置

  1. slowlog-max-len default =128

慢查询队列是先进先出的, 固定长度, 保存在内存内

  1. slowlog-log-slower-than default = 1000

慢查询阈值(单位:微妙) , =0 记录所有的命令(所有的命令都设置未慢查询) , < 0 任何记录都不设置为慢查询

动态配置命令

config set slowlog-max-len 1000
config set slowlog-log-slower-than 1000

三个命令

  1. slowlog get [n] : 获取慢查询队列
  2. slowlog len : 获取慢查询队列长度
  3. slowlog reset : 清空慢查询队列

运维经验

  1. slowlog-max-len 不要设置太大, 默认10ms, 通常1ms
  2. slowlog-log-slower-than 不要设置过小,通常1000左右
  3. 理解命令的生命周期
  4. 定期持久化慢查询(防止历史慢查询丢失,队列长度有限)

pipeline

打包命令批量处理,避免多次网络耗时

Pipline pipline=Jedis.pipline
  1. 注意每次pipeline 携带的数据量
  2. pipeline每次只能作用在一个Redis节点上
  3. 与M操作的区别

发布订阅

角色

  • publisher
  • subscriber
  • channel

模型

publisher发送消息到channel中,subscriber 接收消息,无法获取历史消息

API

  • publish channel message 返回指定频道的订阅者
  • subscribe channel 订阅
  • unsubcribe 取消订阅

其他

psubscribe pattern # 订阅模式

消息队列

发布

Bitmap

  • getbit key offset 直接操作位
  • setbit key offset value 设置指定位图的索引的位置的值0/1,空缺处补0,可能会非常耗时
  • bitcount key start end 获取指定索引中值为1 的个数
  • bitop op destkey key [key] 做多个Bigmap的 and , or not
  • bitpos key targetBit [start][end] 计算指定索引范围内的和target相等的个数

type=string 最大512M

HyperLogLog

基于HyperLogLog的算法: 用极小的空间完成独立的数量统计
本质还是字符串,独立用户数的统计,占用内存极小(优点),但是有错误率(0.81%),无法获取单条数据。

API

  • pfadd key element [element]: 添加
  • pfcount key [key] : 计算hyperloglog的独立总数
  • pfmerge destkey sourcekey [sourcekey] : 合并多个hyperloglog

GEO

3.2 版本后添加的内容,地理信息定位:存储经纬度,计算两地距离,范围计算等。
应用场景:微信摇一摇,在地图上按照距离查找目标,使用zset实现的,可以使用zset的删除命令执行删除操作

API

  • geoadd 添加
  • geopos 获取
  • geodist 计算距离,支持指定距离单位
  • georadius 计算指定范围内的member, 有点复杂,待研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值