慢查询日志
type
status
date
slug
summary
tags
category
icon
password
Property
目录
目录

 
Redis的慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度。服务器配置有两个和慢查询日志相关的选项:
  • slowlog-log-slower-than 选项指定执行时间超过多少微秒(1 秒等于 1,000,000 微秒)的命令请求会被记录到日志上
    • 举个例子, 如果这个选项的值为 100 , 那么执行时间超过 100 微秒的命令就会被记录到慢查询日志;
  • slowlog-max-len 选项指定服务器最多保存多少条慢查询日志
    • 服务器使用先进先出的方式保存多条慢查询日志: 当服务器储存的慢查询日志数量等于slowlog-max-len选项的值时, 服务器在添加一条新的慢查询日志之前, 会先将最旧的一条慢查询日志删除。 如果服务器 slowlog-max-len 的值为 100 , 并且假设服务器已经储存了100条慢查询日志, 那么如果服务器打算添加一条新日志的话, 它就必须先删除目前保存的最旧的那条日志, 然后再添加新日志。
 
CONFIG_SET命令将 slowlog-log-slower-than 选项的值设为0微秒, 这样Redis服务器执行的任何命令都会被记录到慢查询日志中, 接着将slowlog-max-len选项的值设为5 , 让服务器最多只保存5条慢查询日志
监视器
type
status
date
slug
summary
tags
category
icon
password
Property
 
通过执行MONITOR命令, 客户端可以将自己变为一个监视器, 实时地接收并打印出服务器当前处理的命令请求的相关信息:
每当一个客户端向服务器发送一条命令请求时, 服务器除了会处理这条命令请求之外, 还会将关于这条命令请求的信息发送给所有监视器:
notion image
发送MONITOR命令可以让一个普通客户端变为一个监视器, 该命令的实现原理的伪代码来:
如果客户端c10086向服务器发送MONITOR命令, 那么这个客户端的REDIS_MONITOR标志会被打开, 并且这个客户端本身会被添加到monitors链表的表尾。
假设客户端c10086发送MONITOR命令之前, monitors链表的状态:
notion image
那么在服务器执行客户端c10086发送的MONITOR命令之后, monitors链表将被更新为:
 
分区技术
type
status
date
slug
summary
tags
category
icon
password
Property
 
Redis分区技术(Redis Partition)指的是将Redis中的数据进行拆分,然后把拆分后的数据分散到多个不同的Redis实例(即服务器)中,每个实例仅存储数据集的某一部分(一个子集),把这个过程称之为 Redis 分区操作。
Redis实例指的是一台安装了Redis服务器的计算机。
分区(Partition)不仅是Redis中的概念,几乎所有数据库管理系统都会涉及到“分区”的应用。
 
分区的优势
Redis分区技术有两个方面的优势,一是提升服务器的性能,二是提高了服务器的数据存储能力。
一方面,单台机器的Redis服务器,其网络 IO 能力和计算资源都是非常有限的,但是如果我们将请求分散到多台机器上,那么就能充分利用多台计算机的算力和网络带宽,从而整体上提升Redis服务器的性能。另一方面,随着存储数据的不断增加,单台机器的存储容量会达到极限,若将数据分散存储到多台Redis服务器上,其存储能力也将得到大幅度提升。
注意,Redis分区技术可以利用多台计算机的内存总和,从而创建出大型的Redis数据库。
 

分区常用方法

分区技术有两种常用方法,分别是“范围分区”和“哈希分区”。
Redis 缓存问题
type
status
date
slug
summary
tags
category
icon
password
Property

 
在实际的业务场景中,Redis一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。
Redis会把MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到MySQL 中去查询了,而是直接获取Redis中的缓存数据,从而降低了后端数据库的读取压力。如果说用户查询的数据Redis没有,此时用户的查询请求就会转到MySQL 数据库,当MySQL 将数据返回给客户端时,同时会将数据缓存到Redis中,这样用户再次读取时,就可以直接从Redis中获取数据。
notion image
在使用Redis作为缓存数据库的过程中,有时也会遇到一些棘手问题,比如常见缓存穿透、缓存击穿和缓存雪崩等问题
 
 

缓存雪崩

Python 使用Redis
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
Redis模块采用了两种连接模式:直接模式和连接池模式,它们都可以操作Redis
直连模式
db表示当前选择的库,其参数值可以是 0-15;如果设置连接数据库的密码,那么就需要使用password进行验证,否则可以省略
 
连接池模式
redis模块使用 connection pool(连接池)来管理 redis server的所有连接,每个Redis实例都会维护一个属于自己的连接池,这样做的目的是为了减少每次连接或断开的性能消耗。多个Redis实例共享一个连接池:
连接池的作用:当有新的客户端请求连接时,只需要去连接池获取一个连接即可,实际上就是把一个连接共享给多个客户端使用,这样就节省了每次连接所耗费的时间。
 
导数、极限和连续
type
status
date
slug
summary
tags
category
icon
password
Property
 

几何观点下的导数

如何求函数点的切线
确定该直线需要知道两点:
  • 曲线上的点,满足
  • 切线的斜率就是函数的导数
 
notion image
绿色虚线代表 的一条割线(secant line),即经过函数图像任意两个不重复的点的直线。
切线是什么?
  • 与弧线有一个公共交点的直线
  • 是割线(与弧线有两个公共交点的直线)的极限状态,当两个交点之一的点向点趋近,使得两点间的距离退化为零时的一种极限状态。
求导
type
status
date
slug
summary
tags
category
icon
password
Property
 

四则运算法则

设函数 在点可导则
  • ( 为常数)
 

基本导数与微分表

  • (常数)
  • ( 为实数)
    线性和二阶近似
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     

    线性近似

    线性近似可以用一个公式概括:
    假设存在一条曲线,那么在曲线的切点上该曲线近似于其切线
     
    对函数点进行线性近似
    notion image
     
    线性近似的主要作用就是简化函数,给出近似结果
    在0点的线性近似公式:
    notion image
    极值问题
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     

    函数单调性

    • 设函数 区间内可导,如果对 ,都有 (或 ),则函数 内是单调增加的(或单调减少)
    • 取极值的必要条件:设函数处可导,且在 处取极值,则
    • 取极值的第一充分条件
      • 函数 的某一邻域内可微,且 (或处连续,但 不存在)
        • 若当 经过 时, 由“+”变“-”,则 为极大值
        • 若当 经过 时, 由“-”变“+”,则 为极小值;
        • 经过 的两侧不变号,则 不是极值
    • 取极值的第二充分条件
      • 在点 处有 ,且 ,则当 时, 为极大值; 当 时,为极小值。 注:如果 ,此方法失效。
     
    中值定理
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     
    Th1:费马定理
    函数 满足条件:
    1. 函数的某邻域内有定义,并且在此邻域内恒有
    1. 处可导,则有
     
    Th2:罗尔定理
    设函数 满足条件:
    1. 在闭区间 上连续
    1. 内可导
    则在内一存在个 ,使
    无穷小量和不定积分
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     
     
    存在函数,则 的微分记作,它的定义是,也可以称作是的微分
     
    除过去就得到莱伯尼兹的导数记法,因此导数就是两个无穷小量的比。用来替代
    其实还是存在差异的:
    notion image
     
    创造一个新的函数的反导数,又称为的不定积分,符号为积分符号, 满足
    所谓“不定”就是因为在对一个函数求反导数时,其反导数加上一个任意常函数仍然符合反导数的条件。
     
    下面列出一些函数的不定积分: