摘要: 一、索引特点 优势:1. 提高数据检索效率,减少查找数据的磁盘I/O操作 缺点:1. 占用磁盘空间 2. 增加维护成本,增删改需要维护索引 二、索引分类 1. 聚集索引:一张表只能有一个,叶子节点会包含该行的完整数据。 2. 非聚集索引:叶子节点不存完整的数据。 #创建聚集索引 ALTER TABL 阅读全文
posted @ 2021-03-15 16:52 walker993 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 一、Insert语句的执行流程 undo log:数据的旧版本 记录undo_log的redo log:将undo log记录到redo log,防止需要回滚但服务器宕机导致的回滚失败。 二、事务 2.1 ACID特性 2.2 设置当前会话的隔离级别 //设置read uncommitted级别: 阅读全文
posted @ 2021-03-13 17:07 walker993 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一、逻辑架构 Connectors:Mysql的客户端, Management Serveices & Utilities:系统管理和控制工具 Connection Pool:连接池 SQL Interface:DDL、DML语句对应的处理接口 Parser:解析器,对SQL语句进行词法和语法分析, 阅读全文
posted @ 2021-03-13 13:45 walker993 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 一、设计优化 1. 估算Redis内存使用量 以非数字的字符串键值对为例,假设key和value的长度均为12个字节,则内部使用的编码方式为embstr。共计90000个键值对占用的空间 Redis中存储键值对使用字典,字典内部使用哈希表数组,数组的每个元素dictEntry中共有三个指针(指向键的 阅读全文
posted @ 2021-03-10 21:36 walker993 阅读(1154) 评论(0) 推荐(0) 编辑
摘要: 1. 分布式锁的特点 互斥性:同一时刻只有一个客户端可以持有锁 容错性:只要锁服务集群中大部分节点正常运行,客户端就可以进行锁操作 避免死锁:保证锁一定能释放,正常释放或超时释放 加锁和解锁是同一个客户端 2. 分布式锁的实现方式 基于数据库实现分布式锁(乐观锁、悲观锁) 基于zookeeper时节 阅读全文
posted @ 2021-03-10 10:45 walker993 阅读(119) 评论(0) 推荐(0) 编辑
摘要: Redis 5.0版本之后提供的新的数据类型,类似于MQ,是发布订阅模式的改进 1. Streams数据结构 每一个Streams有唯一的名称,对应了Redis的键。将所有加入的消息(xadd指令)串联起来,每个消息有一个ID Consumer Group:消费组,同一个消息可以被组内成员消费,但只 阅读全文
posted @ 2021-03-08 16:54 walker993 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1. BitMap(Redis2.2版本之后) 内部编码为二进制字符串 1. 命令:setbit key offset value offset 必须是数字代表坐标,从0开始计数;value只能为0或1 底层初始化一个全为0的字符串(默认32位),根据offset的将对应位置的值更改为value,用 阅读全文
posted @ 2021-03-08 15:06 walker993 阅读(95) 评论(0) 推荐(0) 编辑
摘要: Redis的事务是指将多个命令请求打包,一次性地,按顺序执行的机制。通过MULTI、EXEC、WATCH等命令实现事务功能。 19.1 事务的实现 19.1.1 事务的开始 MULTI命令的执行代表了一个事务的开始,会将执行该命令的客户端由非事务状态切换成事务状态(在客户端状态的flags属性中打开 阅读全文
posted @ 2021-03-04 16:09 walker993 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 通过SUBSCRIBE命令,客户端可以订阅一个或多个频道,每当有其他客户端向被订阅的频道发送消息,频道的订阅者都会收到消息 通过PSUBSCRIBE命令,客户端可以订阅一个或多个模式,每当有其他客户端向被订阅的频道发送消息,与该频道相匹配的模式订阅者也会收到 18.1 频道的订阅和退订 redisS 阅读全文
posted @ 2021-03-04 16:00 walker993 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能 17.1 节点 一个Redis集群通常由多个节点(node,一个Redis服务器)组成。刚开始每个节点都是一个集群,需要手动指定将其他节点添加到当前集群。 CLUSTER ME 阅读全文
posted @ 2021-03-03 18:01 walker993 阅读(56) 评论(0) 推荐(0) 编辑