摘要:
前言 redis 是一个内存型数据库,那么就需要重点关注一下内存了。 正文 理解Redis内存,首先需要掌握Redis内存消耗在哪些方面。有些内存消 耗是必不可少的,而有些可以通过参数调整和合理使用来规避内存浪费。 内存消耗可以分为进程自身消耗和子进程消耗。 首先需要了解Redis自身使用内存的统计 阅读全文
摘要:
前言 简单介绍一下redis的阻塞问题。 正文 Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成 的。当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现 阻塞,哪怕是很短时间,对于我们的应用来说都是噩梦。 ·内在原因包括:不合理地使用API或数据结构、CPU饱和、持 阅读全文
摘要:
前言 简单介绍一下开发和运维中的问题。 正文 从上文中介绍了,我们有了一个副本了,通过复制的方式。 这些副本可以应用于读写分 离、故障转移(failover)、实时备份等场景。 那么可以关注一些开发和运维的一些问题。 对于读占比较高的场景,可以通过把一部分读流量分摊到从节点 (slave)来减轻主节 阅读全文
摘要:
前言 简单介绍一下复制的原理。 正文 在从节点执行slaveof命令后,复制过程便开始运作,下面详细介绍建立 复制的完整流程。 1)保存主节点(master)信息。 执行slaveof后从节点只保存主节点的地址信息便直接返回,这时建立复 制流程还没有开始,在从节点6380执行info replica 阅读全文
摘要:
前言 Redis的复制拓扑结构可以支持单层或多层复制关系,根据拓扑复杂性 可以分为以下三种:一主一从、一主多从、树状主从结构,下面分别介绍。 正文 一主一从结构 一主一从结构是最简单的复制拓扑结构,用于主节点出现宕机时从节点 提供故障转移支持. 当应用写命令并发量较高且需要持久化时,可以只在从节点上 阅读全文
摘要:
前言 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到 其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提 供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis 的基础,后面章节的哨兵和集群都是在复制的基础上实现高可用的。 正文 参与复制的R 阅读全文
摘要:
前言 Redis持久化功能一直是影响Redis性能的高发地,简单介绍一下持久化的问题定位和优化。 正文 当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创 建子进程,对于大多数操作系统来说fork是个重量级错误。 虽然fork创建的 子进程不需要拷贝父进程的物理内存空间,但 阅读全文
摘要:
前言 简单介绍一下AOF。 正文 AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。 AOF的主要作用 是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。理解 掌握好AOF持久化机制对我们兼顾数据 阅读全文
摘要:
前言 简单介绍一下redis的持久化。先来整理一下RDB。 正文 redis 支持RDB 和 AOF两种持久化机制,他们能达到的效果不一致。 那么先来看一下RDB吧。 RDB 是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和主动触发。 那么这里就有两个关键字了,一个是是保 阅读全文
摘要:
前言 简单整理一下客户端案例分析。 正文 现象一: 服务端现象:Redis主节点内存陡增,几乎用满maxmemory,而从节点 内存并没有变化。 客户端现象:客户端产生了OOM异常,也就是Redis主节点使用的内存 已经超过了maxmemory的设置,无法写入新的数据. 2.分析原因 1)确实有大量 阅读全文