redis特殊功能

模板网 2021-04-14

一、慢查询

  1. 生命周期

两点说明:

(1)、慢查询发生在第三阶段
(2)、客户端超时不一定慢查询,但慢查询是客户端超时的一个因素。
  1. 两个配置 ``` (1)、slowlog-max-len 先进先出的队列、固定长度、保存在内存内 (2)、slowlog-log-slower-than 满查询阀值(单位:微妙)、slowlog-log-slower-than=0记录所有命令、slowlog-log-slower-than<0不记录所有命令

默认值: config get slowlog-max-len = 128 config get slowlog-log-slower-than = 10000 修改配置文件重启 动态配置: config set slowlog-max-len 1000 config set slowlog-log-slower-than 1000


3. 三个命令

slowlog get [n] //获取慢查询队列 slowlog len //获取满查询队列长度 slowlog reset //清空慢查询队列


## 二、pipeline
将多个redis命令打包
1次pipeline命令=1次网络时间+n次命令时间

(1)、注意每次pipeline携带数据量 (2)、pipeline每次只能作用在一个redis节点上


## 三、发布订阅
1、角色

发布者(publisher) 订阅者(subscriber) 通道(channel)


2、模型
![](https://github.com/yaokun123/images/blob/master/github/redis/publisher-model.png)

注意:新订阅者无法收到历史消息。

3、API

publish:发布->publish channel message(publish sohu:tv "hello world")返回订阅者个数 subscribe:订阅->subscribe [channel]#一个或多个(subscribe sohu:tv) unsubscribe:取消订阅->unsubscribe [channel]#一个或多个(unsubscribe sohu:tv)

psubscribe [pattern...]#订阅模式 punsubscribe [pattern...]#退订指定的模式 pubsub channels#列出至少有一个订阅者的频道 pubsub numsub [channel...]#列出给定频道的订阅者数量


4、发布订阅与消息队列

发布订阅:发布者发布之后订阅者都可以收到。
消息队列:发布者发布以后订阅者只有一个可以收到(抢占)

## 四、bitmap
位图:可以直接次操作位(一个字节8位)

## 五、hyperloglog(统计独立用户)
基于HypeLogLog算法:极小空间完成独立数量统计

本质还是字符串

三个命令

1、pfadd key element [element...]:向hyperloglog添加元素 2、pfcount key [key...]:计算hyperloglog的独立总数 3、pfmerge destkey sourcekey [sourcekey...]:合并多个hyperloglog

```

内存消耗:内存消耗较小

使用经验:1、能否容忍错误?(错误率:0.81)。2、是否需要单条数据(没有)

六、geo

相关文章

  1. Sublime Text 快捷键汇总

    [TOC] 快捷键 作用 command+q 退出sublime command+w 退出当前正在编辑的文件 command+e 使用所选内容查找 command+r 跳转定

  2. 如何应对缓存穿透和缓存雪崩问题

    分析:这两个问题,说句实在话,一般中小型传统软件企业,很难碰到这个问题。如果有大并发的项目,流量有几百万左右。这两个问题一定要深刻考虑。 缓存穿透,即黑客故意去请求缓存中不存在的数据,导致所有的请

  3. 高并发下的分布式锁

    public String deductStrck() throws InterruptedException{ String lockKey = "product_001"; //用

  4. rdb快照持久化

    一、持久化的方式 什么是持久化:redis所有数据保存在内存中,对数据的更新将异步保存到磁盘上。 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘。 常见的持久化方式:主从:通过从服务器保存

  5. redis aof日志持久化

    一、aof的原理 问题: 1、每个命令重写一次aof? 2、某个key修改100次,产生100行记录,aof文件会很大,怎么解决? aof重写(简化) 二、aof的配置 appendfsync

随机推荐

  1. Sublime Text 快捷键汇总

    [TOC] 快捷键 作用 command+q 退出sublime command+w 退出当前正在编辑的文件 command+e 使用所选内容查找 command+r 跳转定

  2. 如何应对缓存穿透和缓存雪崩问题

    分析:这两个问题,说句实在话,一般中小型传统软件企业,很难碰到这个问题。如果有大并发的项目,流量有几百万左右。这两个问题一定要深刻考虑。 缓存穿透,即黑客故意去请求缓存中不存在的数据,导致所有的请

  3. 高并发下的分布式锁

    public String deductStrck() throws InterruptedException{ String lockKey = "product_001"; //用

  4. rdb快照持久化

    一、持久化的方式 什么是持久化:redis所有数据保存在内存中,对数据的更新将异步保存到磁盘上。 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘。 常见的持久化方式:主从:通过从服务器保存

  5. redis aof日志持久化

    一、aof的原理 问题: 1、每个命令重写一次aof? 2、某个key修改100次,产生100行记录,aof文件会很大,怎么解决? aof重写(简化) 二、aof的配置 appendfsync