[置顶] mongodb oplog日志详解和格式分析

摘要: 1. 基本概念 oplog使用固定大小集合记录了数据库中所有修改操作的操作日志(新增、修改和删除,无查询),其记录每条记录被修改后的数据,等同于MYSQL中ROW类型的binlog。mongodb收到修改请求后,先在主节点(Primary)执行请求,再把操作日志保存到oplog表中,其他从节点(Se 阅读全文

posted @ 2021-07-17 22:22 xinghebuluo 阅读(4117) 评论(0) 推荐(2) 编辑

2022年7月9日

mongodb 数据块迁移的源码分析

摘要: 本篇文章对mongodb 5.0版本的数据块迁移的源代码做了分析,重点介绍了主要流程的实现。 阅读全文

posted @ 2022-07-09 15:58 xinghebuluo 阅读(557) 评论(0) 推荐(0) 编辑

2022年4月16日

mongodb 数据块的迁移流程介绍

摘要: 1. 基本概念 1.1 Chunk(数据块) 表示特定服务器上面,连续范围的分片键值所包含的一组数据,是一个逻辑概念。 例如,某数据块记录如下: { "_id" : "chunk-a", // 数据块Id "ns" : "user.address", // 该数据块对应的数据库名和表名 "min" 阅读全文

posted @ 2022-04-16 20:42 xinghebuluo 阅读(567) 评论(1) 推荐(0) 编辑

2022年1月10日

Guava Cache源码浅析

摘要: 1. 简介 Guava Cache是指在JVM的内存中缓存数据,相比较于传统的数据库或redis存储,访问内存中的数据会更加高效,无网络开销。 根据Guava官网介绍,下面的这几种情况可以考虑使用Guava Cache: 1. 愿意消耗一些内存空间来提升速度。 2. 预料到某些键会被多次查询。 3. 阅读全文

posted @ 2022-01-10 22:25 xinghebuluo 阅读(406) 评论(0) 推荐(0) 编辑

2021年7月18日

mongodb在双活(主备)机房的部署方案和切换方案设计

摘要: mongodb的双机房部署方案和切换方案设计 阅读全文

posted @ 2021-07-18 22:11 xinghebuluo 阅读(2711) 评论(0) 推荐(1) 编辑

2020年4月19日

Redis之ziplist源码分析

摘要: 一、ziplist简介 从上一篇分析我们知道quicklist的底层存储使用了ziplist(压缩列表),由于压缩列表本身也有不少内容,所以重新开了一篇,在正式源码之前,还是先看下ziplist的特点: 1. ziplist是一种特殊编码的双向列表,特殊编码是为了节省存储空间。 2. ziplist 阅读全文

posted @ 2020-04-19 15:28 xinghebuluo 阅读(860) 评论(0) 推荐(0) 编辑

2020年4月18日

Redis之quicklist源码分析

摘要: 一、quicklist简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 其底层实现所依赖的内部数据结构就是quicklist,主要特 阅读全文

posted @ 2020-04-18 13:47 xinghebuluo 阅读(803) 评论(0) 推荐(0) 编辑

2020年4月6日

mongodb中出现_id字段重复记录的排查笔记

摘要: 近期在使用mongodb的过程中遇到一次表中有几百条_id字段重复的记录(相同_id的有两条),着实吓了一大跳,因为_id字段在mongodb里面已经默认创建了唯一索引,理论上是不可能有重复记录的,因此特把排查过程记录下来。 1. 问题定位 发现这个现象,是在定位一个问题的时候,发现了这批重复脏数据 阅读全文

posted @ 2020-04-06 10:57 xinghebuluo 阅读(2154) 评论(0) 推荐(0) 编辑

2020年3月29日

Redis LRU源码分析

摘要: redis lru代码简析 阅读全文

posted @ 2020-03-29 21:36 xinghebuluo 阅读(586) 评论(0) 推荐(2) 编辑

2018年3月15日

JAVA中int转string及String.valueOf()的使用

摘要: 日常java开放中,经常会遇到int和String的互转,一般图省事的做法就是: length的生成需要使用两个临时字符串""和"100"拼接成最终的字符串,所以效率比较低,那么int转String的正确方式应该是: 两种方式都可以,因为其实String.valueOf()最终调用的还是Intege 阅读全文

posted @ 2018-03-15 17:36 xinghebuluo 阅读(362) 评论(0) 推荐(0) 编辑

导航