Redis学习笔记
2021-03-03 13:41:55 0 举报
AI智能生成
Redis学习笔记
作者其他创作
大纲/内容
多机数据库
复制
旧版
保存rdb
传输
加载
命令同步
2.8以后
记录命令同步偏移量
断线重连从偏移量开始同步
部分重同步原理
复制偏移量
复制积压缓冲区
服务器运行ID
Sentinel
过程
加载配置文件,初始化主服务器
连接主服务器,订阅
获取主服务器信息
子主题
集群
节点
cluster meet命令
槽指派
16384槽
指派给各节点
节点用位标识槽
16384数组指向节点
指令执行
槽运算确定数据所在槽
确定节点
moved错误
分片
更多
发布与订阅
事务
Lua脚本
排序
二进制数组
慢查询日志
Redis
数据结构
SDS
扩展了C字符串
struct
free
len
buf
链表
字典
跳跃表
整数集合
压缩列表
对象
重复对象用引用,不浪费空间
maxmemory时,清理空转对象
结构
type
encoding
ptr
refcount
引用次数
0-9999被默认缓存
lru
最后访问时间
打开maxmemory且volatile-lru或allkeys-lru算法时回收空转过长的key
命令
type key
object encoding key
object idletime key
单机数据库
数据库
通过select切换
每个client指向一个目标数据库
数据库键空间
维护字典
值是五种类型
维护hit,miss次数
过期字典
键是指向键对象的指针
值是过期时间毫秒数
过期键删除策略
惰性删除
所有读写命令都执行
定期删除
定期执行
循环所有db
随机获取DEFAULT_KEY_NUMBERS=20个key进行判断与删除
全过程超时则退出
RDB持久化
AOF持久化
append of file
文本的,可以直接查看
放入缓冲区
操作系统不会及时写入文件,可以通过配置及时写入
AOF重新写
新文件
将实时数据(数据副本)转为命令存储,忽略过程
分为同步异步两种方式
异步时使用重写缓冲区,记录重写过程中的新内容
修改新文件的文件名(原子性,阻塞)
事件
文件事件处理器
特点
基于reactor模式
单线程运行
I/O多路复用监听多个套接字
构成
套接字
文件事件
并发出现
I/O多路复用程序
将套接字放入队列
有序
同步
文件事件派发器
接受套接字
分派到事件处理器
事件处理器
实现
select
epoll
evport
kqueue
时间事件
客户端
服务器
0 条评论
下一页