Redis学习笔记-3.慢查询和其他高级数据结构

文章目录

    • 总览
    • 1. 慢查询
      • 1. 生命周期
      • 2. 两个配置
        • 队列长度
        • 慢查询阀值
      • 3. 配置方法
      • 4. 慢查询相关命令
      • 5. 运维经验
    • 2. pipeline
      • 2.1 pipeline流水线作用
      • 2.2 客户端使用
      • 2.3 与原生M操作的对比
        • 原生M操作是原子操作
        • pipeline非原子操作
      • 2.4 使用建议
    • 3. 发布订阅功能
      • 3.1 角色
      • 3.2 通讯模型
      • 3.3 API
        • publish
        • subscibe
        • unsubcribe
        • 其他功能
      • 3.4 消息队列
    • 4. bitmap数据结构
      • 4.1 位图认识
      • 4.2 相关API
        • setbit
        • getbit
        • bitcount
        • bitop
        • bitops
      • 4.3 独立用户统计
    • 5. HyperLogLog
      • 5.1 认识
      • 5.2 相关API
      • 5.3 局限性和使用经验
    • 6. GEO
      • 6.1 GEO是什么
      • 6.2 常见API
        • geoadd
        • geopos
        • geodist
        • georedius

总览

Redis学习笔记-3.慢查询和其他高级数据结构_第1张图片

1. 慢查询

Redis学习笔记-3.慢查询和其他高级数据结构_第2张图片

1. 生命周期

Redis学习笔记-3.慢查询和其他高级数据结构_第3张图片

2. 两个配置

队列长度

Redis学习笔记-3.慢查询和其他高级数据结构_第4张图片

  • 队列的固定长度配置
慢查询阀值

Redis学习笔记-3.慢查询和其他高级数据结构_第5张图片

  • 时间超过此阀值,就进行队列等待进行慢查询

3. 配置方法

Redis学习笔记-3.慢查询和其他高级数据结构_第6张图片

4. 慢查询相关命令

Redis学习笔记-3.慢查询和其他高级数据结构_第7张图片

5. 运维经验

Redis学习笔记-3.慢查询和其他高级数据结构_第8张图片

  • 1.QPS通常在万级别,即,每处理一个请求一般在0.1ms左右,如果设置阀值过大,如10ms,会对QPS有影响
  • 2.队列长度不要设置过小,储存于内存,不利于历史查看
  • 3.理解生命周期,知道性能瓶颈在什么位置
  • 4.定期持久化到其他数据库,例如MySQL,以便于对历史记录的查询

2. pipeline

2.1 pipeline流水线作用

Redis学习笔记-3.慢查询和其他高级数据结构_第9张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第10张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第11张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第12张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第13张图片

2.2 客户端使用

Redis学习笔记-3.慢查询和其他高级数据结构_第14张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第15张图片

2.3 与原生M操作的对比

原生M操作是原子操作

Redis学习笔记-3.慢查询和其他高级数据结构_第16张图片

pipeline非原子操作

Redis学习笔记-3.慢查询和其他高级数据结构_第17张图片

  • 执行时,将流水线的任务拆分处理,不具有原子性
  • 单返回时,按照顺序去取

2.4 使用建议

Redis学习笔记-3.慢查询和其他高级数据结构_第18张图片

3. 发布订阅功能

Redis学习笔记-3.慢查询和其他高级数据结构_第19张图片

3.1 角色

Redis学习笔记-3.慢查询和其他高级数据结构_第20张图片

3.2 通讯模型

Redis学习笔记-3.慢查询和其他高级数据结构_第21张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第22张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第23张图片

  • 注意:redis无法做消息的堆积,即,新的订阅者是无法订阅到发布者之前的消息

3.3 API

Redis学习笔记-3.慢查询和其他高级数据结构_第24张图片

publish

Redis学习笔记-3.慢查询和其他高级数据结构_第25张图片

subscibe

Redis学习笔记-3.慢查询和其他高级数据结构_第26张图片

unsubcribe

Redis学习笔记-3.慢查询和其他高级数据结构_第27张图片

其他功能

Redis学习笔记-3.慢查询和其他高级数据结构_第28张图片

3.4 消息队列

Redis学习笔记-3.慢查询和其他高级数据结构_第29张图片

  • 与发布订阅不同,发布订阅,所有订阅者都能获取资源,但消息队列不同,只有一个订阅者能抢到消息
  • redis没有实现此功能的api,只是用list阻塞拉取来模拟此功能的实现
  • 根据业务场景使用不同,选择不同的功能

4. bitmap数据结构

Redis学习笔记-3.慢查询和其他高级数据结构_第30张图片

4.1 位图认识

Redis学习笔记-3.慢查询和其他高级数据结构_第31张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第32张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第33张图片

  • 即redis可以直接操作一个位

4.2 相关API

setbit
  • 偏移量从0开始计算
  • 返回之前位置的数,0或1,默认是0
  • 因偏移量默认会补0, 故,注意不要在一个很短的位图上,突然设置一个大的偏移量,否则会出现一些性能上的问题,因为redis是单线程的

Redis学习笔记-3.慢查询和其他高级数据结构_第34张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第35张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第36张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第37张图片

getbit

Redis学习笔记-3.慢查询和其他高级数据结构_第38张图片

bitcount

Redis学习笔记-3.慢查询和其他高级数据结构_第39张图片

bitop

bitops

Redis学习笔记-3.慢查询和其他高级数据结构_第40张图片

4.3 独立用户统计

Redis学习笔记-3.慢查询和其他高级数据结构_第41张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第42张图片

5. HyperLogLog

5.1 认识

Redis学习笔记-3.慢查询和其他高级数据结构_第43张图片

5.2 相关API

Redis学习笔记-3.慢查询和其他高级数据结构_第44张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第45张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第46张图片

Redis学习笔记-3.慢查询和其他高级数据结构_第47张图片

5.3 局限性和使用经验

Redis学习笔记-3.慢查询和其他高级数据结构_第48张图片

  • 不能取出单条数据

6. GEO

Redis学习笔记-3.慢查询和其他高级数据结构_第49张图片

6.1 GEO是什么


Redis学习笔记-3.慢查询和其他高级数据结构_第50张图片

6.2 常见API

geoadd

Redis学习笔记-3.慢查询和其他高级数据结构_第51张图片
Redis学习笔记-3.慢查询和其他高级数据结构_第52张图片

geopos

Redis学习笔记-3.慢查询和其他高级数据结构_第53张图片

geodist

Redis学习笔记-3.慢查询和其他高级数据结构_第54张图片

georedius


Redis学习笔记-3.慢查询和其他高级数据结构_第55张图片

你可能感兴趣的:(常见中间件学习,redis,学习,数据库)