摘要:摘要 什么是 DDL 表级锁和元数据锁 表级锁 元数据锁 什么是无损 DDL 有损 DDL 无损 DDL 什么是重建表 MySQL5.5 之前重建表 MySQL5.6 之后重建表 什么是 COPY|INPLACE | INSTANCE 算法 开源在线变更工具 pt-osc 的变更流程 gh-ost
阅读全文
摘要:如何定义大 Key 和 热 Key 如何定义大 Key 如何定义热 Key 大 Key 和 热 Key 产生的原因 大 Key 和 热 Key 有哪些危害 大 Key 的危害 热 Key 的危害 如何发现大 Key 和 热 Key 通过原生自带的方式 通过 redis-cli 的 bigkeys 和
阅读全文
摘要:为什么需要分布式锁 Redis如何实现分布式锁 如何避免死锁? 锁被别人释放怎么办? 锁过期时间不好评估怎么办? Redlock 真的安全吗 为什么要在多个实例上加锁? 为什么大多数实例加锁成功,才算申请锁成功? 为什么大多数实例加锁成功之后,还要计算加锁的累计耗时? 为什么释放锁,要操作所有节点?
阅读全文
摘要:引入缓存提高性能 缓存利用率和一致性问题 缓存利用率 一致性问题 先更新缓存,后更新数据库 先更新数据库,后更新缓存 并发问题 删除缓存可以保证一致性吗? 一致性问题 先删除缓存,后更新数据库 先更新数据库,后删除缓存 如何保证两步都执行成功? 延迟双删问题和主从延迟问题 可以做到强一致吗? 总结
阅读全文
摘要:摘要:本篇博客主要讲了 Redis 的事件,包括 文件事件 和 时间事件。 可放大页面后查看,没有文字描述,如果后面有需要补充和注意的地方,会持续更新本片博客... 参考资料: [1]:The Design and Implementation of Redis 黄健宏
阅读全文
摘要:摘要:本篇博客主要讲了 Redis 的持久化,包括 RDB 和 AOF。 可放大页面后查看,没有文字描述,如果后面有需要补充和注意的地方,会持续更新本片博客... 补充内容: // bgsave 的原理 /* * (1) fork: redis 通过创建子进程来进行 bgsave 操作 * (2)
阅读全文
摘要:摘要:这篇博客主要讲了 Redis 的一些补充知识,有:类型检查、命令多态、内存回收、对象共享、对象的空转时长相关的内容,说明同上篇,没有文字描述,可放大页面后观看,后面如果有需要补充和说明的地方,会持续更新... 参考资料: [1]:The Design and Implementation of
阅读全文
摘要:摘要:本篇博客只贴了思维导图,名没有文字描述,可放大页面后观看,后面如果遇到需要补充和说明的,会持续更新... 补充部分: //from https://redis.io/topics/data-types//String: 字符串类型的值最大容量限制 512M//List: 列表的元素最大个数为
阅读全文
摘要:摘要:该篇博客贴了 Redis 中的底层数据结构,没有用文字来描述,可放大页面后查看。后面遇到需要补充和注意的地方,会持续更新... 参考资料: [1]:The Design and Implementation of Redis 黄健宏
阅读全文
摘要:前言 在 Redis 的 列表(list) 命令中,有一些命令是阻塞模式的,比如:BRPOP, BLPOP, BRPOPLPUSH, 这些命令都有可能造成客户端的阻塞。下面总结一下 Redis 实现阻塞和取消阻塞的过程。 阻塞过程 当一个阻塞原语的处理目标为空键时, 执行该阻塞原语的客户端就会被阻塞
阅读全文
摘要:摘要:在实习工作中遇到需要将 MySQL 中的部分数据导出到文件中,由于当时不知道怎么在终端下执行 MySQL 语句,所以写这篇博客来记录一下,后面遇到类似问题会不断进行补充。 方法一:使用文件标签 EOF 重定向: # 待补充 方法二:使用 mysql 参数的方法: $ mysql -u$user
阅读全文
摘要:摘要:由于在实习的工作中,采用的是 Go 语言,数据库操作采用的 ORM 框架是 Gorm, 所以就来总结一下使用过程中遇到的一些问题。 基本操作 Save 当匹配主键的数据不存在时,它的效果是插入一条新数据,而当匹配的主键存在时,则更新全部字段。无论字段是否做了修改或者是定义类型的默认值。 pac
阅读全文
摘要:摘要: Redis 在生产环境中,采用配置参数 maxmemory 的方式来限制内存的大小。当实际存储内存超过 maxmemory 参数值时,开发者可以通过 Redis 内存淘汰策略,来决定如何腾出新空间继续支持读写工作。 工作情况 首先,客户端会发起需要更多内存的申请;其次,Redis 检查内存使
阅读全文
摘要:由于基本看完了 《Redis 设计与实现》中的单机部分内容,所以就可以看一些面试常常会问到的相关问题,带着问题去学习,这样效率会更高。 缓存穿透 简介 缓存穿透(缓存击穿) 表示恶意用户请求很多不存在的数据,由于数据库中都没有,缓存中肯定也没有,导致这些请求短时间内直接落在了数据库上,导致数据库异常
阅读全文
摘要:list 简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 注:之所以说 Redis 列表是字符串列表,是因为 “字符串对象是 Red
阅读全文
摘要:今天我们就开始学习 Redis 缓存数据库,本篇主要了解 Redis 的安装和配置。 Redis 安装 Ubuntu 系统安装 Redis 博主选用的系统是阿里云主机的 Ubuntu 16.40 系统,所以安装起来是非常方便的,安装命令如下: $ sudo apt-get update $ sudo
阅读全文
摘要:摘要:这个WAL技术也需要加以整理,即 write-ahead logging (预写式日志),待整理。。。
阅读全文
摘要:摘要:此机制暂时还没听说过,暂且把链接放在这,日后再整理 MVCC参考博客:https://blog.csdn.net/whoamiyang/article/details/51901888
阅读全文
摘要:摘要:分布式数据库(Distributed DB)是数据库中非常重要的一个部分,随着要处理的数据越来越多,分布式逐渐成为了一种策略。主要有:分布式操作系统,分布式程序设计语言,分布式文件系统,分布式数据库等。今天我们主要学习分布式数据库中常用的查询优化策略。 分布式查询优化的目标 方式一:使总代价最
阅读全文