深入解析 MongoDB Plan Cache

前段时间笔者遇到一个MongoBD Plan Cache的bug,于是深究了下MongoDB优化器相关源码。在这里分享给大家,一方面让大家知道MongoDB优化器工作原理,一方面就是避免踩坑。 首先帖一下笔者反馈给官方的bug地址:https://jira.mongodb.org/browse/SERVER-34785 注意目前官方仍在修复中,最新动态可参考:https://jira.mongod…

Continue Reading

深入浅出MongoDB复制

申明 本文由笔者首发于 InfoQ:《深入浅出MongoDB复制》 MongoDB中文社区:《深入浅出MongoDB复制》 由于自己开了blog,所以将之前比较好的文章挪过来便于大家浏览。 综述 笔者最近在生产环境中遇到许多复制相关问题,查阅网上资料发现官方文档虽然系统但是不够有深度,网上部分深度文章则直接以源码展示,不利于大家了解。所以本文则是结合前两者最终给读者以简单的方式展现MongoDB复…

Continue Reading

深入浅出 Redis client/server交互流程

申明 本文由笔者首发于InfoQ:《深入浅出 Redis client/server交互流程》 由于自己开了blog,所以将之前比较好的文章挪过来便于大家浏览。 综述 最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系统性的,不能给读者此交互流程的整体把握。所以这里我尝试,站在源码的角度,将redis c…

Continue Reading

Redis 内存分配分析

为什么要分析 之前业务反应,数据导入到Redis 中,内存是原来文件占用的几倍。所以这里来介绍一下Redis是如何分配内存的。并且在我们日常去评估一个新上线的业务redis内存使用也是非常有帮助的。 需要了解的 这里以简单的Redis String数据类型作为例子,其他数据类型可以作为参考,只要不是采用压缩数据类型存储的。全文会介绍到涉及到内存分配的地方。并且会以此来计算Redis使用的内存,最终…

Continue Reading

如何解决Redis 主从数据不一致问题

线上问题 近期我们在对Redis做大规模迁移升级的时候,采用模拟复制协议的方式进行数据传输同步。 在此期间,我们遇到如下两个问题: 迁移前后Redis过期时间不一致。 迁移前后Redis key 数量不一致。 迁移前后Redis过期时间不一致 针对第一个问题,Redis 过期时间不一致问题,通过测试并且查阅Redis源码中得出如下结论: Redis社区版本在正常的主从复制也会出现过期时间不一致问题…

Continue Reading