redis概览
redis
redis监控指标选择
connected_clients:68 #连接的客户端数量
used_memory_rss_human:847.62M
used_memory_peak_human:794.42M
total_connections_received:619104 #服务器已接受的连接请求数量
instantaneous_ops_per_sec:1159 #服务器每秒钟执行的命令数量
instantaneous_input_kbps:55.85 #redis网络入口kps
instantaneous_output_kbps:3553.89 #redis网络出口kps
rejected_connections:0 #因为最大客户端数量限制而被拒绝的连接请求数量
expired_keys:0 #因为过期而被自动删除的数据库键数量
evicted_keys:0 #因为最大内存容量限制而被驱逐(evict)的键数量
keyspace_hits:0 #查找数据库键成功的次数
keyspace_misses:0 #查找数据库键失败的次数
redis简介
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。
对象
场景
- 1、会话缓存(最常用)
- 2、消息队列,比如支付
- 3、活动排行榜或计数
- 4、发布、订阅消息(消息通知)
- 5、商品列表、评论列表等
- https://www.cnblogs.com/rjzheng/p/9096228.html#!comments
数据结构
- 动态字符串
*
* vs string
* 常数时间获取长度
* 杜绝字符串溢出
* 先检查,在扩容,最后拼接
* 减少重新分配次数
* 预分配
* 惰性回收
* 二进制安全- 用途
- redis 字符串
- AOF缓冲区
- 客户端输入输出缓冲
- 总结
- 用途
- 链表
- 结构
- 节点
- 节点持有
- 用途
- 列表底层实现之一
- 发布订阅
- 慢查询
- 定时器
- 总结
- 结构
- 字典
- 用途
- 数据库
- hash
- 实现
- hash表
- 节点
- hash表
- 总结
- 用途
- 跳跃表
- 概念
- 节点中维持到其它节点的指针,达到快速访问
- 应用
- 有序集合的实现之一
- 结构
- 对比
- 组成
- 节点
- list
- 组成
- 对比
- 总结
- 概念
- 整数集合
- 应用
- 集合键实现之一
- 结构
* - 升级
- 升级
- 总结
- 应用
- 压缩列表
- 应用
- 概念
- 组成
- 节点
- 组成
- 总结
- 对象
- 说明
- redis数据类型
- string
- 场景
- 转换
- list
- 场景
- 子主题 1
- 子主题 2
- 转换
- 子主题 1
- 场景
- hash
- 场景
- 组成
- 压缩列表
- hashtable
- 组成
- 转换
- 转换
- 场景
- set
- 场景
- 组成
- 组成
- 组成
- 转换
- 转换
- 场景
- zsort(sort set)
- 场景
- 组成
*
- 组成
- 转换
- 同时使用原因
- 结构
- 场景
- string
- 对象编码
- 子主题 1
- 不同类型对象编码
- 子主题 1
- 内存
- 引用计数
- 共享内存
- 总结
*
单机数据库
数据库
- 数据库结构与切换
- 数据库键空间
- 过期键
- 判定
- 删除策略,redis采用惰性和定期
- 备份时
- rdb
- 不载入过期数据
- aof
- 没被删除正常复制,过期删除时追加del命令
- 主从复制
- 删除由主数据库执行,并向所有数据库发送显示del
- rdb
- 备份时
- 通知
- 总结
rdb
- 简介
- 创建载入
- 总结
aof
- 简介
- 实现
- 追加
- 写入策略
- 写入
- 同步,AOF 缓冲区的作用:目的是维持主线程 AOF 文件的正常写入,保证在重写阶段,AOF 文件写入的逻辑不变。
AOF 重写缓存区作用:目的是记录 AOF 重写开始之后的键增删改的命令。
这两个缓冲区缺一不可。具体原因如下:
AOF 缓冲区的内容会根据 appendfsync 策略的不同而不同,如果 appendfsync=always,那么每次命令都会立即被刷入到磁盘里,可能 AOF 缓存区就没有数据。而 AOF 重写缓存区一定是从重写开始之后所有的键增删改的命令。两个缓冲区从存在意义上来看是完全不一样的,前者侧重于功能,后者更加侧重于备份。- 过程
- 追加
- 总结
*
事件
- 文件事件
- 文件处理器
- 概念
- 组成
- 多路复用程序
- 文件处理器
- 时间事件
- 属性
- 分类
- 定时事件
- 周期事件
- 执行
- 总结
*
客户端
- 总结
*
服务端
- 总结
*
多机数据库
复制
- 旧版
- 同步
- 步骤
- 命令传播
- 主数据库被修改导致不同步,主服务器会将不同步的命令就行传播使主从一致
- 缺陷
- 断线时恢复消耗大
- 同步
- 场景
* - 新版
*
* 新版流程- 部分同步
- 主从服务器复制偏移量
* - 复制缓冲区
- 实例
- 服务器运行id
*
- 主从服务器复制偏移量
- 部分同步
- 总结
*
sentinel
- 概念
- 管理集群主服务器状态,主服务下线时从中选主,实现高可用
- 监视
- 主数据库,从数据库,sentinel
- 监测主观下线
* - 客观下线
*
* 选举leader sentinel
* 将自己的选举人作为选举人推出,初始化时是自己,先到先得,循环选举,得到半数以上者胜出
- 故障转移
*
* 主服务器选举
* 数据最新,优先级,复制偏移量,id大小 - 总结
*
集群
- 基本命令
- cluster meet
- 节点
- cluster node
- cluster link
- cluster state
- cluster link
- cluster node
- 槽指派
*
*
* node
* state- 流程
- 重新分片
- 流程
- 复制和故障转移
- 故障转移
- 总结
*
独立功能
发布订阅
慢查询
监视器
*redis学习图