Redis集群机制分析 主从复制模式Redis集群实现数据同步,保证服务高可用。 一主多从 数据流向是单向的,master->slave 开启指令: slaveof 192.168.1.10 6379 //当前服务节点称为指定IP的从节点 slaveof no one //取消从属关系 配置文件: slaveof ip port slave-read-only ye 2020-07-13 中间件 > Redis
Redis持久化机制分析 简介Redis数据保存在内存中,为了防止进程异常退出而导致数据丢失,可以考虑将数据保存到磁盘上。 Redis提供的两种持久化方案: RDB:直接将数据库状态写到文件,既可以手动执行,也可以配置为定期执行。 AOF:将写命令append到AOF文件中。 RDB两种方案: save:直接执行 bgsave:fork一个子进程执行 rdbSave是save的具体实现函数,bgsave与其区别是通 2020-07-12 中间件 > Redis
MySQL体系结构和存储引擎 体系结构MySQL体系结构如图所示: 分别由Client Connectors层、MySQL Server层以及存储引擎层组成。 Client Connectors层:负责处理客户端的连接请求,与客户端创建连接。 MySQL Server层: Connection Pool:负责处理和存储数据库与客户端创建的连接,一个线程负责管理一个连接,包括了用户认证模块,就是用户登录身份的认证和鉴权以及安全 2020-07-11 MySQL #MySQL
Redis对象机制分析 简介Redis中提供的数据结构都使用了下面的redisObject进行包装,通过包装可以提供不同场景下使用不同的数据结构的实现。Redis的对象机制还使用了引用计数方式的内存回收机制。 typedef struct redisObject { // 类型 unsigned type:4; // 编码 unsigned encoding:4; 2020-07-11 中间件 > Redis
Redis过期删除策略与内存淘汰机制 过期删除策略过期删除策略主要有以下三种: 定时删除:设置过期时间的同时,创建一个定时器,当到达过期时间后,执行删除操作。 优点:对内存友好,不会长时间占用内存 缺点:对CPU不友好,当过期entry过多会占用大量CPU时间,并且创建定时器存在性能消耗。 惰性删除:每次查询到该entry时,检查是否过期,若过期就删除,否则返回。 优点:对CPU友好 缺点:无用数据占用大量内存空间,依赖于客户端 2020-07-10 中间件 > Redis
Redis基础知识总结 Redis简介Redis特性 速度快(内存,10w QPS, C , 单线程) 持久化(将内存数据异步更新到磁盘,RDB&AOF) 多种数据结构(string list set zset hash BitMaps HyperLogLog GEO) 支持多语言 功能丰富(发布订阅 事务 Lua脚本 pipeline) 简单(23000 lines of code 不依赖外部库 单线程模型) 2020-07-09 中间件 > Redis
Redis底层数据结构-Stream源码分析 简介Redis在5.0.0版本中引进了消息队列的功能,该功能由Stream实现,本文主要介绍Stream的相关实现。 数据结构streamStream的实现依赖于Rax树与listpack结构,每个消息流都包含一个Rax树,以消息ID为key,listpack为value存储在Rax树中。其基本结构如下: rax:rax存储生产者生产的具体消息,每个消息有唯一ID为键 length:代表当前st 2020-06-27 Redis > 源码分析 #数据结构 #源码分析 #Redis
Redis底层数据结构-Quicklist源码分析 简介quicklist是Redis 3.2中引入的数据结构,其本质是一个双向链表,链表的节点类型是ziplist,当ziplist节点过多,quicklist会退化成双向链表,以提高效率。 数据结构quicklistNode该结构为节点类型。 prev:指向前驱节点 next:指向后继节点 zl:指向对应的压缩列表 sz:压缩列表的大小 encoding:采用的编码方式,1为原生,2代表使用LZ 2020-06-25 Redis > 源码分析 #数据结构 #源码分析 #Redis